当前位置:首页 » 安卓系统 » 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根据子属性来判断控件是否需要隐藏

热点内容
汽车安全配置哪些好 发布:2025-03-16 23:16:42 浏览:174
vcmfc源码 发布:2025-03-16 23:14:17 浏览:503
如何设置禁止访问服务器ip 发布:2025-03-16 23:14:07 浏览:499
linuxloadrunner 发布:2025-03-16 23:12:18 浏览:765
搭建fms服务器 发布:2025-03-16 23:11:27 浏览:978
代码编程图片 发布:2025-03-16 23:09:58 浏览:412
研发加密 发布:2025-03-16 23:09:51 浏览:609
哪些车有配置前后防撞钢梁 发布:2025-03-16 22:55:35 浏览:729
服务器怎么设置外网访问 发布:2025-03-16 22:53:03 浏览:186
安卓手机如何绕过缓存软件 发布:2025-03-16 22:35:16 浏览:243