当前,我正在开发一个具有基本计算器布局和功能的应用程序。我有8个edittext和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循环,然后再传递一个变量?
谢谢。
答案 0 :(得分:-2)
听是一种可以减少代码的方法。只需在网格布局的每个按钮中添加android:onClick =“ onClick”并在Java文件中执行以下操作,
public void onClick(View v) {
Button b=(Button)v;
String s+=b.getText();
}
这两行从您的按钮获取文本,并将其设置为String。
如果您要创建具有这种计算器功能的实时计算的计算器
APK:https://play.google.com/store/apps/details?id=com.androchunk.calculator
然后,您可以找到计算器项目的免费源代码以及可帮助您创建计算器和了解计算器工作原理的教程视频。
教程视频:https://www.youtube.com/playlist?list=PLdMmtAIsH0KYiKrdpbzat6t96Nb1_k3_1