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

dam*_*uar 1 android

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

Pet*_*ego 5

每个视图(包括按钮)都可以通过其setId(int)方法"识别" .

单击时,您将传递视图到a View.OnClickListener.onCLick(view).只需提取ID,您就会知道这是哪个按钮.

创建按钮时:

button.setId(1);
Run Code Online (Sandbox Code Playgroud)

当单击此按钮时:

button.setOnClickListener( new OnClickListener() {
    public void onClick(View v) {
      int id = view.getId();
      // do something with the Id
    }
});
Run Code Online (Sandbox Code Playgroud)

更新:答案更新基于@Octavian Damiean的评论:用于识别视图setId()应该用来代替setTag().