KrL*_*ler 3 android button listener onclicklistener
我动态创建不同的按钮,如下所示:
for (int toShow = 1; toShow <= nShips; toShow++)
{
btn = new Button(this);
btn.setBackgroundResource(shipDrawable.get(ima));
btn.setLayoutParams(params);
row[pos].addView(btn);
btn.setId(shipId.get(ima));
if (row[pos].getChildCount() == 3) pos++;
ima++;
}
Run Code Online (Sandbox Code Playgroud)
我需要知道每个按钮的身份,因为彼此有不同的动作.然后,我尝试这样设置onClickListener
:
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View btn) {
switch(btn.getId()){
case 1000: System.out.println("FIRST");
break;
case 1004: System.out.println("FOURTH");
break;
}
}
});
Run Code Online (Sandbox Code Playgroud)
但它不起作用.似乎onClickListener
唯一影响最后一个项目的创建.如果我创建四个按钮,只有第四个按钮会有一个onClickListener
.
如何让我的点击监听器工作?
你可以这样做:
OnClickListener clicks=new OnClickListener() {
@Override
public void onClick(View v) {
switch(v.getId())
{
case 1000: System.out.println("FIRST");
break;
case 1004: System.out.println("FOURTH");
break;
}
}
};
for (int toShow = 1; toShow <= nShips; toShow++)
{
btn = new Button(this);
btn.setBackgroundResource(shipDrawable.get(ima));
btn.setLayoutParams(params);
row[pos].addView(btn);
btn.setId(shipId.get(ima));
btn.setOnClickListener(clicks);
if (row[pos].getChildCount() == 3) pos++;
ima++;
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4602 次 |
最近记录: |