我有一个ListView,每行包含按钮。我不想为每个按钮分配自己的监听器对象,因为它会创建很多对象。但问题是如何在单击按钮时确定行号或上下文信息?
答案 0 :(得分:5)
可以通过setId(int)
方法“识别”每个视图(包括按钮)。
点击后,您会将视图传递给View.OnClickListener.onCLick(view)
。只需提取ID,您就会知道这是哪个按钮。
创建按钮时:
button.setId(1);
单击此按钮时:
button.setOnClickListener( new OnClickListener() {
public void onClick(View v) {
int id = view.getId();
// do something with the Id
}
});
更新:答案已根据@Octavian Damiean的评论更新:用于识别视图setId()
应使用setTag()
。
答案 1 :(得分:0)
使用
listview..setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int rowNumber,
long arg3) {
// TODO Auto-generated method stub
}
});
我们可以获得点击的行