我正在开发一个android应用程序,并且我有一个重复的代码。有什么解决方案可以优化这些代码行吗?谢谢
Button btn1 = (Button) dialog.findViewById(R.id.btn1);
Button btn2 = (Button) dialog.findViewById(R.id.btn2);
Button btn3 = (Button) dialog.findViewById(R.id.btn3);
Button btn4 = (Button) dialog.findViewById(R.id.btn4);
Button btn5 = (Button) dialog.findViewById(R.id.btn5);
Button btn6 = (Button) dialog.findViewById(R.id.btn6);
Button btn7 = (Button) dialog.findViewById(R.id.btn7);
Button btn8 = (Button) dialog.findViewById(R.id.btn8);
Button btn9 = (Button) dialog.findViewById(R.id.btn9);
btn1.setOnClickListener(listener);
btn2.setOnClickListener(listener);
btn3.setOnClickListener(listener);
btn4.setOnClickListener(listener);
btn5.setOnClickListener(listener);
btn6.setOnClickListener(listener);
btn7.setOnClickListener(listener);
btn8.setOnClickListener(listener);
btn9.setOnClickListener(listener);发布于 2014-04-28 21:47:08
为布局xml中的每个按钮添加一个android:onClick="onButtonClick"侦听器
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button1"
android:layout_margin="10dp"
android:onClick="onButtonClick"/>并且,在您的Activity中添加一个公共方法onButtonClick来侦听按钮onClick。什么时候调用onButtonClick取决于按钮id,做你的其他事情
public void onButtonClick(View view) {
int id = view.getId();
switch (id){
case R.id.button1:
// do your stuff;
break;
case R.id.button2:
// do your stuff
break;
}
}发布于 2014-04-28 21:53:52
您还可以动态创建按钮并将其添加到容器布局中。假设您有一个LinearLayout作为容器。在您的onCreate()方法中,找到视图:
容器容器= ( LinearLayout )findViewById(R.id.container);
然后在一个循环中创建按钮并将它们添加到容器中:
for(int i=0; i<numberOfButtons; i++){
Button b = new Button(this); //Create the button with the current context
b.setText("My button "+ String.valueOf(i));
container.addView(b);
}如果你想使用另一种布局和布局你想要的视图,你可以使用LayoutParams和其他特殊的参数,如GRAVITY等。
发布于 2014-04-28 21:44:17
我在这里要做的是声明一个按钮数组,而不是许多变量。
Button[] buttons = new Buttons[9];要从布局中获取它们,我看不到任何其他解决方案(除了动态创建按钮而不是从XML创建按钮):
Button buttons[0] = (Button) dialog.findViewById(R.id.btn1);
Button buttons[1] = (Button) dialog.findViewById(R.id.btn2);
Button buttons[2] = (Button) dialog.findViewById(R.id.btn3);
Button buttons[3] = (Button) dialog.findViewById(R.id.btn4);
Button buttons[4] = (Button) dialog.findViewById(R.id.btn5);
Button buttons[5] = (Button) dialog.findViewById(R.id.btn6);
Button buttons[6] = (Button) dialog.findViewById(R.id.btn7);
Button buttons[7] = (Button) dialog.findViewById(R.id.btn8);
Button buttons[8] = (Button) dialog.findViewById(R.id.btn9);对于其余部分,请使用您的数组:
for (Button btn : buttons) {
btn.setOnClickListener(listener);
}https://stackoverflow.com/questions/23342701
复制相似问题