Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何处理android中动态添加按钮的setOnClickListener?_Java_Android Studio_For Loop_Onclicklistener - Fatal编程技术网

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

Java 如何处理android中动态添加按钮的setOnClickListener?,java,android-studio,for-loop,onclicklistener,Java,Android Studio,For Loop,Onclicklistener,我已将按钮视图添加到线性布局 现在,我想在每个添加的按钮上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

我已将
按钮
视图添加到
线性布局
现在,我想在每个添加的
按钮上
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();
       }
   });
}
对于(int i=0;i
您单击了按钮1

对于按钮2==>
您单击了按钮2


如何做???

您可以
setTag
getTag
来识别您的按钮

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

如果您的意图是只读取“you clicked button(number)”,看起来这也是按钮上的文本,那么您可以将视图转换为按钮并在其上执行gettext(),然后与“you clicked”连接。类似于“you clicked”+(button)v.gettext()@穆罕默德·阿卜杜勒·巴里,不,我不能那样做。按钮文本和按钮标签值是不同的