[英]How to set onClickListener for separate parts of custom listView item? [Android]
我为我的Android应用程序制作了一个自定义listView,我在为项目的不同部分创建单独的onClickListener时遇到问题。 我的项目有图片和文字。 我想要的是根据点击的那些开始不同的活动。
onClick()方法应该启动一个活动,这使我无法在我的DataBinder类的getView()方法中定义。 (DataBinder使用自定义布局填充我的listView)
有帮助吗?
谢谢!
在您的自定义ListAdapter's
getView
方法,你应该添加onClickListeners
到要采取行动,点击不同的子视图。
有关如何实现getView
方法的示例:
class CustomListAdapter extends ArrayAdapter<String> implements OnClickListener {
public CustomListAdapter(Context context, int textViewResourceId) {
super(context, textViewResourceId);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
TextView tv = (TextView) v.findViewById(R.id.textView1);
tv.setOnClickListener(this);
ImageView iv = (ImageView) v.findViewById(R.id.imageView1);
iv.setOnClickListener(this);
return super.getView(position, convertView, parent);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.textView1:
// Do stuff accordingly...
break;
case R.id.imageView1:
// Do stuff when imageView1 is clicked...
default:
break;
}
}
}
为列表项中的ImageView
和TextView
定义单独的onClick()
方法并非不可能。 这正是您必须要做的,而不是使用ListView
的onClick()
处理程序。
在适配器的getView()
为每个项实现onClick()
方法。
一种选择是为单独的元素包含onClick方法。 假设您已经在XML中构建了自定义行,在onClick字段中添加方法很简单,设置该元素(例如,图像)以允许点击(如果尚未),并在您的类中定义方法。 然后,如果单击该行 ,则列表视图单击处理程序将触发,但如果单击该元素(图像),则会触发它自己的onClick方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.