adapt下listview给整个item或者内部控件设置监听器
来源:互联网 发布:护士资格证题库软件 编辑:程序博客网 时间:2024/05/29 08:56
适配器simpleadapt下编写监听器,1.可以编写OnitemListenter 再把item内部获得焦点的控件焦点设置成FALSE 就可以实现对整个item的监听,同时不同的arg2代表不同的item。
2.如果想对item内部的控件设置监听器,可以通过继承baseadapt来修改getview 可以在GetView内部加控件的监听器,同时注意 position代表的是不同item下的监听器,要想实现position的用处,要把getView内的参数position写成final int position
例如:1.这里的item是一个图片,通过点不同的图片实现监听 这里有两种方法实现(因为这里一个item内部只有一个控件图片,所以图片可以看成一个item,也可以看成一个控件就有了下面这两种方法)
(1) GridView gv = (GridView)findViewById(R.id.gridView1);
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
Toast.makeText(GridViewDemo.this, "你点击了第"+arg2+"张图片", Toast.LENGTH_SHORT).show();
}
});
long arg3) {
// TODO Auto-generated method stub
Toast.makeText(GridViewDemo.this, "你点击了第"+arg2+"张图片", Toast.LENGTH_SHORT).show();
}
});
(2)public View getView(final int position, View convertView, ViewGroup parent) {
ImageView iv;
if(convertView == null){
iv = new ImageView(context);
//为图片大小,长宽分别为80像素大小
iv.setLayoutParams(new GridView.LayoutParams(48,48));
//设置图片的显示模式,居中显示
iv.setScaleType(ImageView.ScaleType.CENTER_CROP);
}else{
iv = (ImageView)convertView;
}
//设置图片资源
iv.setImageResource(res_img[position]);
iv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//注意position 被设置成了final 否则不能实现
Toast.makeText(context, "Hello World!"+position, Toast.LENGTH_SHORT).show();
}
});
return iv;
}
}
ImageView iv;
if(convertView == null){
iv = new ImageView(context);
//为图片大小,长宽分别为80像素大小
iv.setLayoutParams(new GridView.LayoutParams(48,48));
//设置图片的显示模式,居中显示
iv.setScaleType(ImageView.ScaleType.CENTER_CROP);
}else{
iv = (ImageView)convertView;
}
//设置图片资源
iv.setImageResource(res_img[position]);
iv.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//注意position 被设置成了final 否则不能实现
Toast.makeText(context, "Hello World!"+position, Toast.LENGTH_SHORT).show();
}
});
return iv;
}
}
2.该方法实现的是设置item内部控件的监听器,控件可以是button或者是textView
public View getView(int position, View convertView, ViewGroup parent) {
convertView = mInflater.inflate(layoutID, null);
for (int i = 0; i < flag.length; i++) {//备注1
if (convertView.findViewById(ItemIDs[i]) instanceof ImageView) {
ImageView iv = (ImageView) convertView.findViewById(ItemIDs[i]);
iv.setBackgroundResource((Integer) list.get(position).get(
flag[i]));
} else if (convertView.findViewById(ItemIDs[i]) instanceof TextView) {
TextView tv = (TextView) convertView.findViewById(ItemIDs[i]);
tv.setText((String) list.get(position).get(flag[i]));
}else{
//...备注2
}
}
addListener(convertView, position);
return convertView;
}
public void addListener(View convertView, final int position) {
((Button)convertView.findViewById(R.id.buttonView)).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(SimpleAdapterDemo.ma, "Hello World!"+position, Toast.LENGTH_LONG).show();
}
});
((TextView)convertView.findViewById(R.id.textView1)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(SimpleAdapterDemo.ma, "Hello World!"+position, Toast.LENGTH_LONG).show();
}
});
}
convertView = mInflater.inflate(layoutID, null);
for (int i = 0; i < flag.length; i++) {//备注1
if (convertView.findViewById(ItemIDs[i]) instanceof ImageView) {
ImageView iv = (ImageView) convertView.findViewById(ItemIDs[i]);
iv.setBackgroundResource((Integer) list.get(position).get(
flag[i]));
} else if (convertView.findViewById(ItemIDs[i]) instanceof TextView) {
TextView tv = (TextView) convertView.findViewById(ItemIDs[i]);
tv.setText((String) list.get(position).get(flag[i]));
}else{
//...备注2
}
}
addListener(convertView, position);
return convertView;
}
public void addListener(View convertView, final int position) {
((Button)convertView.findViewById(R.id.buttonView)).setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(SimpleAdapterDemo.ma, "Hello World!"+position, Toast.LENGTH_LONG).show();
}
});
((TextView)convertView.findViewById(R.id.textView1)).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Toast.makeText(SimpleAdapterDemo.ma, "Hello World!"+position, Toast.LENGTH_LONG).show();
}
});
}
0 0
- adapt下listview给整个item或者内部控件设置监听器
- 适配器simpleadapt下编写监听器,1.可以编写OnitemListenter 再把item内部获得焦点的控件焦点设置成FALSE 就可以实现对整个item的监听,同时不同的arg2代表不同的i
- Android ListView Item里面的控件设置监听器问题
- ListView中为每个item设置监听器
- 安卓listview item内部控件操作方法
- 解决fragment中listView或者gridView给item设置监听,点击空指针问题
- 使用ListView界面布局、给每个item绑定监听器
- 给ListView的Item设置高度
- ListView中为每个item设置监听器(转)
- 用 Case方法为每个 ListView 的Item设置监听器
- 怎样给listview的item中的子控件设置监听及时时刷新
- ListView在不刷新整个界面下,单独更新item
- Xamarin.Android ListView Item 内部控件Click事件
- Android ListView:实现item内部控件的点击事件
- Fragment下listview item设置fragment,
- Qt给窗口或者控件设置透明度
- ListView无障碍识别整个listView,不识别item,设置了setContentDescription也没有用
- Fragment中ListView的Item的点击事件(包含Item内部控件的点击事件)
- BP神经网络的C代码分析
- 实现一个函数,传递一个有10个已经排好序的整形元素数组(数组大小实际为11)中,将一个指定的值按顺序插入,并在main函数中将插入后的数组输出。
- 用Lua编写iOS程序
- java操作access数据库乱码问题
- 使用nssm在windows服务器上部署nodejs
- adapt下listview给整个item或者内部控件设置监听器
- shell函数功能
- iOS开发:开发者账号申请后真机调试详细步骤
- hdu 1085
- 苹果所有常用证书
- Java中Vector、List、Set集合、Iterator迭代器的使用
- POJ 3692 Kindergarten 二分图最大独立集
- Java网页数据抓取实例
- 面试知识点总结