我有一个自定义列表视图,它有一个图像视图和一个文本视图。 我实现了ListView.setOnItemSelectedListener();
但是这些是使ImageView和TextView都可以单击(分别)的方法吗,我的意思是单击ImageView必须调用ActivityA,单击TextView必须调用ActivityB?
是的,您可以在适配器类本身中执行此操作。只需在适配器类中为 ImageView 和 Textview 设置单击侦听器即可。
当然可以!
在自定义 ListAdapter 中,您可以像下面这样设置 onClickListener:
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
if( row == null ){
LayoutInflater vi = (LayoutInflater) this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = vi.inflate(this.textViewResourceId, null);
}
row.findViewById(R.id.image_item).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
}
});
row.findViewById(R.id.text_item).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
}
});
}
是的,你当然可以做到这一点。您可以在适配器类中单独设置 onClickListener,如果您希望使用 onItemClickListener 在单击整个列表项时执行不同的操作,请将这些按钮或文本视图设置为不可聚焦。
yourButton.setFocusable(false);
yourButton.setFocusableInTouchMode(false);
相同的示例
喜欢这个
点应保持
您需要在getView中将侦听器设置为每个视图(不要在每次在获取视图中只需传递已经创建的一个或可以通过这个并在同一适配器类中实现侦听器)
使视图(如文本视图)可点击 true
您还需要行位置,以便可以使用不同的逻辑喜欢获取和设置标签或查看参数,如此链接所示