6.8创建按钮及其点击事件监听器
问题
当用户按下按钮时,您需要执行某些操作。
解
在布局中创建按钮,并使用OnClickListener()实现,使其在单击时执行相关操作。
讨论
在布局中创建按钮很简单。在XML布局中,您可以创建如下按钮:
<Button android:id="@+id/start_button"
android:text="@string/start_button_label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
在活动的onCreate()方法中,通过其ViewID(在此示例中为R.id.start_button)找到按钮。使用OnClickListener调用其setOnClickListener()方法。
在OnClickListener实现中,检查ViewID并执行相关操作:
public class MainActivity extends Activity implements OnClickListener {
public void onCreate() {
startButton = findViewById(R.id.start_button);
startButton.setOnClickListener(this);
...
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.start_button:
// Start whatever it is the start button starts...
...
case R.id.some_other_button:
// etc.
}
}
}
任何经验丰富的Java程序员都希望为onClickListener使用一个匿名内部类,就象从1.1版开始在AWT和Swing中所做的那样。出于性能原因,早期的Android文档建议反对这一点,建议你有Activity实现OnClickListener和检查ViewID(即Java 1.0的做事方式)。然而,与Swing一样,设备的功能已经变得更快了,这种旧式的做事方式变得越来越不受欢迎,虽然你仍然会看到两种风格在使用一段时间。