我目前正在开发一个 Android 应用程序,有几个问题。
1) 在我的应用程序中,有一个 Battery Mod 部分。他们将有超过 50 个按钮。所以,不要做类似的事情:
public class MyActivity extends Activity implements OnClickListener {
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button buttonA = (Button) findViewById(R.id.buttonA);
buttonA.setOnClickListener(this);
Button buttonB = (Button) findViewById(R.id.buttonB);
buttonB.setOnClickListener(this);
}
//etc... etc...
public void onClick(View v) {
switch (v.getId()) {
case R.id.buttonA:
// do something
break;
case R.id.buttonB:
// do something else
break;
}
}
}
有没有更简单的方法来做到这一点?当您单击电池模组按钮时,它会显示模组的图像以及安装它的选项。除了图像,每个 mod 都是一样的。如果没有更简单的方法。
最佳答案
标签属性是所有 View 的一个有用组件,但为此目的并未过多讨论。您可以将 View 的标签设置为任何对象:
Object foo = new Object();
button1.setTag(foo);
您可以使用它轻松地将标签分配给图像的名称,或者可能是 Drawable
资源的 id。然后对所有这些按钮使用一个 onClick
方法,并简单地解压标签以确定应该如何使用它:
public void onClick(View v)
{
//any button was clicked. Now determine what to do using the tag.
Object tag = v.getTag();
//TODO: use tag.
}
关于Android:许多按钮,一个 OnClickListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14944784/