我通常编码
Button button1 = (Button)findViewById(R.id.start1);
button1.setOnClickListener(mStart1Listener);
Button button2 = (Button)findViewById(R.id.start2);
button2.setOnClickListener(mStart2Listener);
但在android示例中,我在ServiceStartArgumentsController.java中找到了这些
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.service_start_arguments_controller);
// Watch for button clicks.
Button button = (Button)findViewById(R.id.start1);
button.setOnClickListener(mStart1Listener);
button = (Button)findViewById(R.id.start2);
button.setOnClickListener(mStart2Listener);
button = (Button)findViewById(R.id.start3);
button.setOnClickListener(mStart3Listener);
button = (Button)findViewById(R.id.startfail);
button.setOnClickListener(mStartFailListener);
button = (Button)findViewById(R.id.kill);
button.setOnClickListener(mKillListener);
}
它们之间有什么区别,以及为什么一个按钮可以添加多个ClickListener
答案 0 :(得分:2)
它们之间有什么区别,以及为什么一个按钮可以添加多个ClickListener
一个视图只能有一个OnClickListener。第二种方法是重新使用变量button
,注意第三行:
Button button = (Button)findViewById(R.id.start1);
button.setOnClickListener(mStart1Listener);
button = (Button)findViewById(R.id.start2); // This one
它使用 new 按钮覆盖button
的先前值, new 按钮将分配下一个OnClickListener。
答案 1 :(得分:0)
那不是一个按钮。它在每个setOnClickListener之前改变;代码只对该活动的不同按钮使用一个变量。