導航:首頁 > 操作系統 > androidlistview實現表格

androidlistview實現表格

發布時間:2022-11-27 12:15:09

A. 如何用安卓開發出復雜表格(類似Excel統計表)

android實現Excel表格

具體的用法: 寫好xml的布局文件:分為頭部標題和lsitView兩個部分。 頭部標題永遠排在第一列,其中第一個會滑動所以在布局的時候就不要放在
* com.excel.tool.MyHScrollView裡面(MyHScrollView重寫的HorizontalScrollView)。
* 其它沒有什麼就是對其滑動處理的把握。
*
* item裡面的數據以及布局,按照正確的布局方式和邏輯處理。
*
* 它的用法其實你當做簡單的listView那樣操作就可以了。
*
* 排序沒有完善,其實都是同一個方法,有待合並。
*
*

java">{
Contextcontext;
privateListViewlistView;
privateLinearLayouttoplayout;
privateMyAdaptermyAdapter;
publicList<DataModel>BaseData;
;
/**
*
*isTouchItem值的改變在
*
*com.excel.tool.MyHScrollView中去判斷--解決ListView很容易觸發點擊事件
*
*裡面處理控製表格滑動很容易觸發的點擊事件問題
*/
=false;
/***
*
*排序的監聽
*/
privateLinearLayoutsort_0;
privatebooleanischeck;

privateImageViewsort_triangle;

@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context=MainActivity.this;
viewInit();
dataInit();
}

/***
*
*view的初始化
*
*/
publicvoidviewInit(){

toplayout=(LinearLayout)findViewById(R.id.toplayout);
toplayout.setOnTouchListener(onTouchListener);
horizontalScrollView=(HorizontalScrollView)toplayout
.findViewById(R.id.horizontalScrollView_excel);

listView=(ListView)findViewById(R.id.listView);
listView.setOnItemClickListener(onItemClickListener);
listView.setOnTouchListener(onTouchListener);

sort_0=(LinearLayout)findViewById(R.id.sort_0);
sort_0.setOnClickListener(onClickListener);
sort_triangle=(ImageView)findViewById(R.id.waterlevel_triangle);

}

/***
*
*數據的初始化
*
*/
publicvoiddataInit(){
if(BaseData==null)
BaseData=newArrayList<DataModel>();

myAdapter=newMyAdapter(context,toplayout);

for(inti=0;i<Data.subject.length;i++){
DataModelmodel=newDataModel();
model.setSubject(Data.subject[i]);
model.setChinese(Data.Chinese[i]);
model.setMath(Data.Math[i]);
model.setEnglish(Data.English[i]);
model.setPhysics(Data.Physics[i]);
model.setChemistry(Data.Chemistry[i]);
model.setBiology(Data.Biology[i]);
model.setPE(Data.PE[i]);
BaseData.add(model);
}
myAdapter.setHostBaseData(BaseData);
listView.setAdapter(myAdapter);

}

=newOnClickListener(){
@Override
publicvoidonClick(Viewv){
switch(v.getId()){
caseR.id.sort_0:
if(ischeck==false){
//對數據進行排序--傳入數據,2表示遞減排序,1表示遞減
BaseData=Sort.sortchukuData(BaseData,2);
myAdapter.setHostBaseData(BaseData);
ischeck=true;
sort_triangle
.setBackgroundResource(R.drawable.triangle_down);
}else{
BaseData=Sort.sortchukuData(BaseData,1);
myAdapter.setHostBaseData(BaseData);
ischeck=false;
sort_triangle.setBackgroundResource(R.drawable.triangle_up);
}
break;

}

}

};

=newOnItemClickListener(){
@Override
publicvoidonItemClick(AdapterView<?>arg0,Viewarg1,intposition,
longarg3){
if(isTouchItem==false)
return;
CustomerToast.showToast(context,"你點擊的是:"+position+"這個下標");

}

};

=newOnTouchListener(){

@Override
publicbooleanonTouch(Viewv,MotionEventevent){
switch(v.getId()){
caseR.id.toplayout:
horizontalScrollView.onTouchEvent(event);
returnfalse;
caseR.id.listView:
horizontalScrollView.onTouchEvent(event);
returnfalse;

}
returnfalse;
}

};

}

效果圖片:

B. android手機應用開發中如何用listview顯示一個表呢

  1. 展示的效果可能類似於下圖:

    <LinearLayoutxmlns="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <TextView
    android:id="@+id/name_tv"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"/>
    <TextView
    android:id="@+id/price_tv"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"/>

    </LinearLayout>

C. 安卓listview怎麼做表格

-----解決方案-------------- import java.util.HashMap;import java.util.List;import android.app.Activity;import android.os.Bundle;import android.widget.ListView;import android.widget.SimpleAdapter;public class ListViewA extends

D. android開發中,table表中的一行又做為listview,如何去實現。

首先在布局中新建個ListView(最好再新建個Layout然後setContentView(...)然後把listview加到這個裡面) 之後就好說了,建立一個Listview的適配器,好像是ListAdapter吧,給他弄成是SimpleCursorAdapter()這個括弧裡面有一大堆的參數,可以設置游標,每行顯示多少個數據項,從哪幾列中取數據等等,之後再ListView對象.setAdapter(ListAdapter的對象)就可以了,因為查詢資料庫是要用游標實現的,所以這個布局正好適應了將查詢出的結果一行一行的顯示。 不好意思剛才沒看見你是要把行作為按鈕,那你就在適配器中寫一個監聽事件,應該是OnItemClickListener,然後在裡面寫東西就好了,總之這些東西都要在你的適配器中寫

E. 安卓裡面想做個簡單表格,能一行一行的選擇,並能點擊跳轉頁面。請問用Listview 怎麼實現

這樣只能一行行的選中,不能選中每個單元格。你可以用gridview做個表格而且還會比較好看

F. android中怎麼創建一個表格

效果圖:


5、 單擊該項目,執行。便得到以上效果!

G. listview中如何用select excel

Listview沒有提供直接導入到excel的介面,你只有逐單元格復制數據到excel的相對應的單元格了。
如果是客戶端的話,建議先將excel上傳到伺服器,後台將這個excel文件作為數據源進行查詢,將結果集綁定到listview上。
android裡面沒有表格,只有列表,要做到這樣的效果很麻煩的。android裡面的ui是適合手機的,這種列表,特別是右邊的那個下拉按鈕,不適合手機這種屏幕小的設備。

H. android實現復雜table表格合並單元格

可以通過Tablelayout布局的layout_span屬性實現,layout_span指定該單元格占據的列數

1、Tablelayout簡介

Tablelayout類以行和列的形式對控制項進行管理,每一行為一個TableRow對象,或一個View控制項。當為TableRow對象時,可在TableRow下添加子控制項,默認情況下,每個子控制項占據一列。 當為View時,該View將獨佔一行。

2、TableLayout行列數的確定

TableLayout的行數由開發人員直接指定,即有多少個TableRow對象(或View控制項),就有多少行。

TableLayout的列數等於含有最多子控制項的TableRow的列數。如第一TableRow含2個子控制項,第二個TableRow含3個,第三個TableRow含4個,那麼該TableLayout的列數為4.

3、TableLayout可設置的屬性詳解

TableLayout可設置的屬性包括全局屬性及單元格屬性。

單元格屬性,有以下2個參數:

android:layout_column 指定該單元格在第幾列顯示

android:layout_span 指定該單元格占據的列數(未指定時,為1)

示例:

android:layout_column="1"該控制項顯示在第1列
android:layout_span="2"該控制項占據2列

4、一個TableLayout布局的實例

<?xmlversion="1.0"encoding="utf-8"?>
<LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="3dip"
>
<!--1個TableLayout,用於描述表中單元格的屬性,包括:android:layout_column及android:layout_span-->
<TextView
android:text="表:單元格設置:指定單元格屬性設置"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textSize="15sp"
android:background="#7f00ffff"/>
<TableLayout
android:id="@+id/table2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="3dip">
<TableRow>
<Buttonandroid:text="第0列"/>
<Buttonandroid:text="第1列"/>
<Buttonandroid:text="第2列"/>
</TableRow>

<TableRow>
<TextViewandroid:text="我被指定在第1列"android:layout_column="1"/>
</TableRow>

<TableRow>
<TextView
android:text="我跨1到2列,不信你看!"
android:layout_column="1"
android:layout_span="2"
/>
</TableRow>

</TableLayout>

I. android 怎麼給listview添加一個固定表頭以及顯示像table的效果

定義一個樣式一條線
<style name="vertical_layout">
<item name="android:layout_width">1dp</item>
<item name="android:layout_height">fill_parent</item>
<item name="android:background">#dadada</item>
</style>

1.為表頭新建一個layout:a_item.xml(一共設置3個列名)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/a_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:cacheColorHint="#00000000"
android:orientation="horizontal" >
<TextView
android:id="@+id/item1bzrbjzb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:ellipsize="none"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="false"
android:textSize="15.0sp" >
</TextView>
<View style="@style/vertical_layout" /> <!-- 一條線 -->
<TextView
android:id="@+id/item2bzrbjzb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:ellipsize="none"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="false"
android:text="@string/bzr_km" <!-- 列名-->
android:textColor="@android:color/black"
android:textSize="15.0sp" >
</TextView>
<View style="@style/vertical_layout" /> <!-- 一條線 -->
<TextView
android:id="@+id/item3bzrbjzb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:ellipsize="none"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="false"
android:text="@string/bzr_bjqk" <!-- 列名-->

android:textColor="@android:color/black"
android:textSize="15.0sp" >
</TextView>
<View style="@style/vertical_layout" /> <!-- 一條線 -->
<TextView
android:id="@+id/item4bzrbjzb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:ellipsize="none"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="false"
android:text="@string/bzr_jfjgl" <!-- 列名-->

android:textColor="@android:color/black"
android:textSize="15.0sp" >
</TextView>

<TextView
android:id="@+id/item6ctj"
android:layout_width="100.0dip"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:ellipsize="none"
android:gravity="center"
android:paddingBottom="5dp"
android:paddingTop="5dp"
android:singleLine="false" >
</TextView>
</LinearLayout>
第一個和最後一個textView不給賦值,用於填充屏幕的空白,顯示好看
2.給界面**Activity新建一個main_layout,應用剛才的a_item.xml以及添加一個繼承了listView的view對象HVListView
***
<include layout="@layout/a_item" />

<com.gdtech.znpc.android.view.HVListView
android:id="@android:id/list"
android:background="@android:color/white" android:fastScrollEnabled="true"
android:fadingEdgeLength="0.0sp" android:layout_width="wrap_content"
android:layout_height="fill_parent" android:drawSelectorOnTop="false"
android:divider="#dadada"
android:dividerHeight="1.0dip"
android:cacheColorHint="#00000000">
</com.gdtech.znpc.android.view.HVListView >
******
3.獲取屏幕的解析度 為每個表頭的設置寬度
private DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
private int w = dm.widthPixels / 16; // 當前解析度 寬度 分為16份
獲取a_item裡面的每個textView的id 進行寬度設置
mListView = (HVListView) findViewById(android.R.id.list);
// 設置列頭
mListView.mListHead = (LinearLayout) findViewById(R.id.a_item);
// 設置表頭的寬度
TextView t11 = (TextView) findViewById(R.id.item1bzrbjzb);
TextView t12 = (TextView) findViewById(R.id.item2bzrbjzb);
TextView t13 = (TextView) findViewById(R.id.item3bzrbjzb);
TextView t14 = (TextView) findViewById(R.id.item4bzrbjzb);

//t13.setText("成績");

t11.setWidth(w * 0); //不顯示第一列
t12.setWidth(w * 3);
t13.setWidth(w * 6);
t14.setWidth(w * 6);

4.給HVListView添加適配器,並設置每列的寬度和表頭對應

class ViewHolderbjzb { // 這個類裡面定義的TextView數量和表頭裡面的TextView要一致
TextView item1bjzb;
TextView item2bjzb;
TextView item3bjzb;
TextView item4bjzb;
}

mAdapter = new DataAdapter1();
mListView.setAdapter(mAdapter);

private class DataAdapter1 extends BaseAdapter {
@Override
public int getCount() {
return hang;// 固定顯示多少行數據
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = mInflater1.inflate(R.layout.bzr_fx_bjzb_head_item,
null);
holder = new ViewHolderbjzb();
holder.item1bjzb = ((TextView) convertView
.findViewById(R.id.item1bzrbjzb));
holder.item2bjzb = ((TextView) convertView
.findViewById(R.id.item2bzrbjzb));
holder.item3bjzb = ((TextView) convertView
.findViewById(R.id.item3bzrbjzb));
holder.item4bjzb = ((TextView)convertView
.findViewById(R.id.item4bzrbjzb));
// holder.item4bjzb=((TextView)
// convertView.findViewById(R.id.item4bjzb));
// holder.item5bjzb=((TextView)
// convertView.findViewById(R.id.item5bjzb));
convertView.setTag(holder);
// 設置表格內容寬度,與表頭對應
holder.item1bjzb.setWidth(w * 0);
holder.item2bjzb.setWidth(w * 3);
holder.item3bjzb.setWidth(w * 6);
holder.item4bjzb.setWidth(w * 6);

holder.item1bjzb.setText("");
holder.item2bjzb.setText("");
holder.item3bjzb.setText("");
holder.item4bjzb.setText("");
// holder.item4bjzb.setText("");
// holder.item5bjzb.setText("");
} else {
holder = (ViewHolderbjzb) convertView.getTag();
}
for (int i = 0; i < listDatas.size(); i++) {
// 顯示列的id數
// holder.item1bjzb.setText((position + 1) + "");
/*
listDatas 就是要顯示的後台數據
*/
if (position == i) {
Map<String, Object> row = listDatas.get(position);
holder.item1bjzb.setText("用後台獲取的數據 進行填充就可以"));
holder.item2bjzb.setText("用後台獲取的數據 進行填充就可以"));
holder.item3bjzb.setText("用後台獲取的數據 進行填充就可以"));
holder.item4bjzb.setText("用後台獲取的數據 進行填充就可以"));
}
}
// 設置隔行顏色
if (position % 2 != 0) {
convertView.setBackgroundResource(R.drawable.listview_color_1);
} else {
convertView.setBackgroundResource(R.drawable.listview_color_2);
}
return convertView;
}

網上有很多解決 android listview 水平和垂直滾動的代碼,我沒有按照他們說的做(以前沒搜到 O(∩_∩)O~) 我採用的是添加HorizontalScrollView
Java代碼
1. < ScrollView android:id="@+id/ScrollView01"
2. android:layout_height="300px"
3. android:layout_x="16px"
4. android:layout_y="84px"
5. android:layout_width="290px"
6. android:scrollbars="horizontal|vertical">
7. < HorizontalScrollView android:id="@+id/HorizontalScrollView01"
8. android:layout_height="fill_parent"
9. android:layout_width="wrap_content">
10. < LinearLayout android:id="@+id/LinearLayout02"
11. android:layout_width="wrap_content"
12. android:orientation="vertical"
13. android:layout_height="fill_parent">
14. < ListView android:id="@+id/listview"
15. android:layout_height="300px"
16. android:layout_width="fill_parent">
17. < /ListView>
18. < /LinearLayout>
19. < /HorizontalScrollView>
20. < /ScrollView>

我有一個Listview,因為橫屏和豎屏原因,內容較多,豎屏會出現有些數據無法顯示
於是讓Listview在橫向上可以滾動。
解決的辦法是,用HorizontalScrollView包裝Listview,這樣,當豎屏時,就會出現橫向滾動條。
<HorizontalScrollView
Android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true">
<ListView android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1"
android:background="@drawable/email_box"
android:id="@+id/advice_main_list_id"
android:padding="5dip"/>
</HorizontalScrollView>

但此時又出現了另一個問題,加上HorizontalScrollView後,雖然我已經設了Listview的寬度是fill_parent。但當內容較少時,Listview還是根據內容自適應寬度,不能滿屏。
此時,需要設置一個屬性就能解決問題了。設置HorizontalScrollView的android:fillViewport="true"。也就是設置是否將HorizontalScrollView的內容寬度拉伸以適應視口(viewport)

閱讀全文

與androidlistview實現表格相關的資料

熱點內容
程序員那麼可愛父母查崗 瀏覽:498
php東方通 瀏覽:134
榮耀在線app可以在哪裡下載 瀏覽:367
mc演算法實現 瀏覽:672
阿里雲伺服器t5 瀏覽:46
命令行調用程序 瀏覽:73
汽缸壓縮比大了好嗎 瀏覽:667
工程電路分析pdf 瀏覽:48
k線圖源碼大全 瀏覽:457
c語言編譯器可以走c嘛 瀏覽:18
蘋果已經購買的app如何不再訂閱 瀏覽:150
ubuntu默認命令行 瀏覽:532
平面橢圓怎麼編程 瀏覽:516
安卓手機微信照片馬克筆怎麼去掉 瀏覽:231
編譯器工具是什麼 瀏覽:983
年底解壓的最佳方法 瀏覽:193
操作系統源碼查詢 瀏覽:853
陪聊app怎麼收費 瀏覽:88
python刪除csv文件的特定行 瀏覽:484
51單片機如何串口發送數據 瀏覽:998