在此行中单击按钮时确定行号

时间:2011-03-02 09:25:38

标签: android

我有一个ListView,每行包含按钮。我不想为每个按钮分配自己的监听器对象,因为它会创建很多对象。但问题是如何在单击按钮时确定行号或上下文信息?

2 个答案:

答案 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

            }
        });

我们可以获得点击的行