【问题标题】:Multiple Edittext with Buttons onClickListener带有按钮 onClickListener 的多个 Edittext
【发布时间】: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


【解决方案1】:

Hear 是一种可以缩小代码的方法。只需在网格布局的每个按钮中添加 android:onClick="onClick" 并在 java 文件中执行以下操作,

 public void onClick(View v) {
       Button b=(Button)v;
       String s+=b.getText();
    }

这两行从您的按钮获取文本并设置为字符串。

如果你想创建像这个计算器一样具有实时计算功能的计算器

APK:https://play.google.com/store/apps/details?id=com.androchunk.calculator

然后您可以找到计算器项目的免费源代码以及帮助您创建计算器和了解计算器工作的教程视频。

教程视频:https://www.youtube.com/playlist?list=PLdMmtAIsH0KYiKrdpbzat6t96Nb1_k3_1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    • 1970-01-01
    • 2016-05-19
    • 1970-01-01
    相关资源
    最近更新 更多