单击时如何获取动态生成的按钮的ID

How to get id of dynamically generated button when its clicked

我使用循环创建了一些动态生成的按钮,并在同一个循环中定义了 OnClickListener

总结代码:

for (int j = 0; j < list.size(); j++) {
    Button button = new Button(this);
    button.setId(j);
    button.setOnClickListener(new View.OnClickListener() {
        public void onClick(view v) {
            //Code
        }
    });
}

如果他们中的任何一个被点击,然后 onClick 被激活并且他们都 运行 相同的代码。 我想知道如何获得点击按钮的 id

在你的 onClickListener 上,有一个提供的 View v 参数,它基本上是你的按钮,所以只需调用:v.getId() 应该得到你的按钮的 ID。

button.setOnClickListener(new View.OnClickListener(){
    public void onClick(View v){
        Log.d('LOG', v.getId());
    }
}
/**
 * Interface definition for a callback to be invoked when a view is clicked.
 */
public interface OnClickListener {
    /**
     * Called when a view has been clicked.
     *
     * @param v The view that was clicked.
     */
    void onClick(View v);
}

上面的接口是为每个视图setOnClickListener()注册的,所以如果任何用户点击视图,onClick(View v)方法将被调用。 到时候我们就认识一下所有属性的视图了。因此,我们通过调用此方法 view.getId().

来获取 Views Id