當前位置:首頁 » 安卓系統 » androidlistview子控制項

androidlistview子控制項

發布時間: 2022-09-24 01:07:15

❶ android中listview怎麼用

創建繼承BaseAdapter並實現其抽象方法的類MyListViewAdapter
說明
下面的講解中,只創建自定義的適配器類,如何使用請參考android中常用控制項的使用之ListView
1.創建類MyListViewAdapter
創建類MyListViewAdapter,該類繼承BaseAdapter,並實現其抽象方法:
1
2
3
4

int getCount();
Object getItem(int position);
long getItemId(int position);
View getView(int position,View convertView,ViewGroup parent);

getCount需要返回有多少個item,也就是說最會在listview中展示這么多行
getItem需要返回參數position位置的數據
getItemId返回position就行了
2.給MyListViewAdapter類添加成員變數和構造方法
兩個成員變數
1
2

List<String> list;
Context context;

list表示要顯示的數據,context變數在生成View對象時需要用到
構造方法:構造方法是為了給兩個成員變數賦值
1
2
3
4

public MyListViewAdapter(List<String> list , Context context) {
this.list = list;
this.context = context;
}

3.給getCount,getItem,getItemId方法添加代碼
getCount需要返回有多少個item,也就是說最會在listview中展示這么多行,所以返回list.size
getItem需要返回參數position位置的數據,也就是list中第position項的值list.get(position)
getItemId返回position就行了
1
2
3
4
5
6
7
8
9
10
11
12
13
14

@Override
public int getCount() {
return list.size();
}

@Override
public Object getItem(int position) {
return list.get(position);
}

@Override
public long getItemId(int position) {
return position;
}

4.給getView方法添加代碼
getView方法是返回位置為position的View對象,第二個參數convertView考慮到資源重用問題,在上下滑動的過程中,需要顯示某項的時候才會調用getView方法,而如果有某項被隱藏不顯示,就會把不顯示那一行的View作為convertView參數傳入,如果沒有某項被隱藏,convertView值為null。可以通過下面代碼中的if(convertView!=null)中的輸出來看哪一行被隱藏了。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

@Override
public View getView(int position, View convertView, ViewGroup parent) {
System.out.println("調用getView方法,顯示position="+position+"項");
if(convertView!=null){
TextView t = (TextView) convertView.findViewById(R.id.firstTextView);
System.out.println(t.getText());
}else{
LayoutInflater layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = layoutInflater.inflate(R.layout.item_mylistviewadapter, null);
}
TextView t = (TextView)(convertView.findViewById(R.id.firstTextView));
t.setText(list.get(position));
if(position%2==0)
{
t.setBackgroundColor(Color.WHITE);

}
else{
t.setBackgroundColor(Color.GRAY);
}
return convertView;
}

補充:通過xml生成View對象
通過Context對象生成一個LayoutInflater對象
調用LayoutInflater對象的inflate方法生成控制項對象,inflate方法的第一個參數為xml文件,第二個參數一般為null。返回值為該xml文件最外層的標簽對象。
1
2

LayoutInflater layoutInflater =(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
LinearLayout convertView =(LinearLayout)layoutInflater.inflate(R.layout.item_mylistvie

源代碼下載
pan..com/s/1ntuQDdv

❷ Android listview中隱藏子控制項後高度沒變

解決了嗎。

❸ android怎麼在listview 的item裡面放控制項

我們的需要的效果

1 ListView的Item本身可以選擇

2 Item中的按鈕可以隨意點擊,不會干擾Item

實現的過程

在ListView中用圖片控制項,或者文本控制項,來代替圖片按鈕和普通按鈕,並在Adapter中設置點擊事件就可以

如例:
//根據數據項,設置點擊文本框的文字,並設置點擊事件

TextView txt_Remember=(TextView)convertView.findViewById(R.id.txt_Remember);

txt_Remember.setOnClickListener(new TextView.OnClickListener()
{
public void onClick(View v){
LibListViewAdapter.this.remove(LibListViewAdapter.this.getItem(1));

}
});
復制代碼

❹ Android中ListView的Item的子控制項獲取焦點問題

ListView默認情況

當item有焦點時,item上的button等子控制項獲取不到焦點;
當子控制項有焦點時,item無焦點無法響應onItemClick事件

ViewGroup.FOCUS_AFTER_DESCENDANTS:表示item的子控制項優先於item獲得焦點;
ViewGroup.FOCUS_BEFORE_DESCENDANTS:表示item優先於其子控制項獲得焦點。

解決辦法:

[java] view plain
listView.setOnItemSelectedListener(onItemSelectedListener);
private AdapterView.OnItemSelectedListener onItemSelectedListener =
new AdapterView.OnItemSelectedListener(){
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
//當此選中的item的子控制項需要獲得焦點時
parent.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
//else parent.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
}

@Override
public void onNothingSelected(AdapterView<?> parent) {
parent.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
}
}

❺ 如何在listview中找到子控制項

寄揚州韓綽判官(杜牧)

❻ 如何在activity中操作ListView子項控制項

這個getchilden是獲取Item裡面的子控制項 就是Listview子項的某個控制項 不是 item不過我看了你的需求 我剛在群里說過了 不知道你懂了沒 其實就是改變一個item的子屬性 item根據子屬性來判斷控制項是否需要隱藏

熱點內容
linux分區表查看 發布:2025-03-16 21:20:17 瀏覽:643
java多個if 發布:2025-03-16 21:15:46 瀏覽:694
可樂存儲 發布:2025-03-16 21:15:07 瀏覽:871
ios遷移安卓用什麼助手 發布:2025-03-16 20:12:42 瀏覽:720
python異常值處理 發布:2025-03-16 20:12:42 瀏覽:581
POtn編程 發布:2025-03-16 20:06:11 瀏覽:776
競彩資金怎麼配置 發布:2025-03-16 20:01:57 瀏覽:10
在終端中打開編譯環境 發布:2025-03-16 19:57:34 瀏覽:601
sqlserver安裝資料庫 發布:2025-03-16 19:57:01 瀏覽:36
如何關掉廣告推送安卓 發布:2025-03-16 19:43:32 瀏覽:959