如何处理 android 中动态添加按钮的 setOnClickListener?

How to handle setOnClickListener for dynamically added button in android?

我已将 button 视图添加到 linearlayout 现在我想 setOnClickListener 每次添加 button 这是我的代码

for(int i=0;i<15;i++){
   Button btn = new Button(this);
   btn.setText("button " + i);
   myview.addView(btn);

   btn.setOnClickListener(new OnClickListener(){
       @Override
       public void onClick(View v){
            Toast.makeText(MainActivity.this, "you clicked button " + i, Toast.LENGTH_SHORT).show();
       }
   });
}

但所有按钮的结果仅为 you clicked button 15,但我只想获得我点击按钮的位置结果 Like:

对于按钮 1 ==> you clicked button 1
对于按钮 2 ==> you clicked button 2

怎么做?

您可以setTaggetTag来识别您的按钮。

Button btn = new Button(this);
btn.setText("button " + i);
btn.setTag("button" + i);
myview.addView(btn);

btn.setOnClickListener(new OnClickListener(){
    @Override
    public void onClick(View v){
        Toast.makeText(MainActivity.this, "you clicked " + v.getTag(), Toast.LENGTH_SHORT).show();
    }
});