如何处理 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
怎么做?
您可以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();
}
});
我已将 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
怎么做?
您可以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();
}
});