【问题标题】:What is the best way to set same event to multiple components in android?在android中为多个组件设置相同事件的最佳方法是什么?
【发布时间】:2015-04-04 12:20:39
【问题描述】:
我正在开发一个安卓应用。屏幕上会有一个类似时间表的视图。我想使用多个按钮创建这个视图。比如这样:
|08.30| |09.30| |10.30|
|11.30| |12.30| |13.30|
|14.30| |15.30| |16.30|
用户将单击其中一个按钮,我将获得按钮的文本。我需要对按钮进行相同的事件以获取它们的文本。但是,会有超过 20 个按钮,我想这个过程对于多个按钮来说并不是没用的。将相同事件设置为按钮的最佳和最简单的方法是什么?我需要描述java端的所有按钮吗?
【问题讨论】:
标签:
android
events
button
【解决方案1】:
方法一:
创建一个函数并将按钮文本作为变量传递给它:
onclick()
{
func(Button.getText().toString());
}
func(String s)
{
//do something
}
您必须在上述方法中覆盖每个按钮的 onClick。
方法二:
在xml中定义
<Button>
...
android:onClick ="func"
..
</Button>
在 Java 中:
func()
{
//Do something.
}
上面的方法你不会得到文本。
方法三:
实现 onClickListener:
public class MainActivity extends Activity implements OnClickListener {
....
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.button1:
func(button1.getText().toString());
break;
case R.id.button2:
func(..)
break;
....
}