简体   繁体   English

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

[英]How to handle setOnClickListener for dynamically added button in android?

I have added button view to a linearlayout and now I want to setOnClickListener on each added button here's my code我已将button视图添加到linearlayout ,现在我想在每个添加的button上设置setOnClickListener这是我的代码

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();
       }
   });
}

but getting result is only you clicked button 15 for all buttons, but i want to get only that position result which I have clicked on button Like:但得到的结果只有you clicked button 15 ,但我只想得到我点击按钮的 position 结果,比如:

for button1 ==> you clicked button 1对于 button1 ==> you clicked button 1
for button2 ==> you clicked button 2对于 button2 ==> you clicked button 2

How to do that??怎么做??

You can setTag and getTag to identify your Buttons.您可以通过setTaggetTag来识别您的 Button。

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();
    }
});

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM