【发布时间】:2018-07-23 14:51:56
【问题描述】:
目前我正在开发一款具有某种基本计算器布局和功能的应用程序。我有 8 个编辑文本和一个由 9 个按钮组成的网格。使用 onClicklistener 方法是否有更好的方法来处理这个问题,而不是为每个 Edittext 嵌套一个长的 if 或 switch 语句?
private View.OnClickListener mListener = new View.OnClickListener() {
public void onClick(View v) {
switch (v.getId() /*to get clicked view id**/) {
case R.id.btn_1:
if edt_1.hasFocus() {
edt_1 = btn_1.getText()
}
if edt_2.hasFocus() {
edt_2 = btn_1.getText()
}
break;
case R.id.btn_2:
if edt_1.hasFocus() {
edt_1 = btn_1.getText()
}
if edt_2.hasFocus() {
edt_2 = btn_1.getText()
}
break;
default:
break;
}
}
我在想也许使用 hasFocus() 方法并从那里监听点击或 while 循环会更好,然后可能传递一个变量?
提前谢谢..
【问题讨论】:
-
检查jakewharton.github.io/butterknife。它将使您可以将方法注释到给定视图的 onClick。
-
一种更快的方法是为按钮设置 TAG 值,并对所有按钮使用相同的 ClickListener 函数。然后,在click函数内部,获取到具体edittext的TAG值。
-
@Atish 感谢工作就像一个魅力。
标签: android android-edittext onclicklistener