![](/img/trans.png)
[英]Android - Easier/Faster/Less tedious way to implement Parcelable?
[英]Android onTouchListener, easier way to implement
好吧,我有16个按钮。 我想找到一种将它们添加到onTouch侦听器的简便方法,因为这是Android / java的新手,所以我不确定是否可以使用。 这是我现在的代码。
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main)
。
Button btn_main1 = (Button) findViewById(R.id.cmd_main1);
Button btn_main2 = (Button) findViewById(R.id.cmd_main2);
Button btn_main3 = (Button) findViewById(R.id.cmd_main3);
Button btn_main4 = (Button) findViewById(R.id.cmd_main4);
Button btn_main5 = (Button) findViewById(R.id.cmd_main5);
Button btn_main6 = (Button) findViewById(R.id.cmd_main6);
Button btn_main7 = (Button) findViewById(R.id.cmd_main7);
Button btn_main8 = (Button) findViewById(R.id.cmd_main8);
Button btn_main9 = (Button) findViewById(R.id.cmd_main9);
Button btn_main10 = (Button) findViewById(R.id.cmd_main10);
Button btn_main11 = (Button) findViewById(R.id.cmd_main11);
Button btn_main12 = (Button) findViewById(R.id.cmd_main12);
Button btn_main13 = (Button) findViewById(R.id.cmd_main13);
Button btn_main14 = (Button) findViewById(R.id.cmd_main14);
Button btn_main15 = (Button) findViewById(R.id.cmd_main15);
Button btn_main16 = (Button) findViewById(R.id.cmd_main16);
btn_main1.setOnTouchListener(tListener1);
btn_main2.setOnTouchListener(tListener1);
btn_main3.setOnTouchListener(tListener1);
btn_main4.setOnTouchListener(tListener1);
btn_main5.setOnTouchListener(tListener1);
btn_main6.setOnTouchListener(tListener1);
btn_main7.setOnTouchListener(tListener1);
btn_main8.setOnTouchListener(tListener1);
btn_main9.setOnTouchListener(tListener1);
btn_main10.setOnTouchListener(tListener1);
btn_main11.setOnTouchListener(tListener1);
btn_main12.setOnTouchListener(tListener1);
btn_main13.setOnTouchListener(tListener1);
btn_main14.setOnTouchListener(tListener1);
btn_main15.setOnTouchListener(tListener1);
btn_main16.setOnTouchListener(tListener1);
}
显然,这是一种糟糕的方法。 我确信有一种方法可以进行某种循环,或将按钮放入数组或其他东西中。 任何帮助缩短此过程的帮助将不胜感激!
另一种方法是使用代码而不是XML添加按钮。
但是,只是为了清理该代码...
int[] buttonIds = new int[]{R.id.cmd_main1, R.id.cmd_main2}; // and so on
for(int buttonId : buttonIds) {
Button b = (Button)findViewById(buttonId);
b.setOnTouchListener(tListener1);
}
另外,根据您希望按钮执行的操作,onClickListener可能更干净。 然后,您还可以在XML中指定onClickListener:
<Button android:onClick="myClickHandler" />
在活动中,添加相应的方法:
class MyActivity extends Activity {
public void myClickHandler(View target) {
// Do stuff
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.