【问题标题】:How do I make my Calculate button redundant?如何使我的计算按钮变得多余?
【发布时间】:2011-05-09 15:58:14
【问题描述】:

我有一个简单的 Android 应用程序,它对用户输入的 2 个数字进行一些数学运算并返回结果。 目前我有一个“计算”按钮,需要按下它来进行数学运算并返回值。

我怎样才能摆脱这个按钮,让应用程序在使用改变了两个数字之一后运行数学?

非常感谢。

【问题讨论】:

  • 您使用哪种编程语言?
  • 用“对不起,但我们不得不让你走”的评论把它包装起来。

标签: android math input automation


【解决方案1】:

假设您使用 EditText-s 进行输入(因为它们可能是 SeekBar-s,谁知道呢),在它们每个上添加一个 TextWatcher with this 并在其中一个更改后刷新结果

【讨论】:

    【解决方案2】:

    我对一个 EditText 字段使用了类似的东西,我希望在更改其他一些 EditText 字段后自动更新:

        myEditText.setOnEditorActionListener(new TextView.OnEditorActionListener() {
            @Override
            public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
                if (actionId == EditorInfo.IME_ACTION_DONE)
                {
                    calculateNewValue();   // Updates internal variables
    
                    // This part will hide the keyboard after input
                    InputMethodManager imm = (InputMethodManager)getSystemService(INPUT_METHOD_SERVICE);
                    imm.hideSoftInputFromWindow(v.getWindowToken(), 0);
                    return true;
                }
                return false;
            }
        });
    

    完成后这也会隐藏键盘 (thanks to a bit of help)。

    calculateNewValue() 更新字段如下:

    private void calculateNewValue()
    {
        val = YourFormula()
    
        myEditText.setText(String.format(yourFormat, val))
    }
    

    【讨论】:

    • 感谢您的帮助。我可以整理一下,看看它是如何工作的。但是我收到以下错误: TextView 类型中的方法 setOnEditorActionListener(TextView.OnEditorActionListener) 不适用于参数 (new OnEditorActionListener(){}) 这是什么意思?干杯。
    • 我自己对Android有点陌生,所以我不确定。您是否在输入参数 TextView.OnEditorActionListener(){}) 中包含了 TextView?
    • 我基本上复制了上面的代码并更改了 myEditText 以匹配我的 EditText。在我的程序中,我没有使用 TextView,所以我不确定是否所有的 TextView 部分都应该是 EditViews?困惑。
    • 我尝试使用下面的代码,但它似乎没有任何效果 myEditText.setOnEditorActionListener(new EditText.OnEditorActionListener() { public boolean onEditorAction(EditText v, int actionId, KeyEvent event) { if ( actionId == EditorInfo.IME_ACTION_NEXT)
    【解决方案3】:

    详细信息取决于您使用的语言,但基本上只要其中一个数字发生更改,您就可以运行计算函数。应该有一种方法可以覆盖在任一文本框中的数据发生更改时调用的函数。

    【讨论】:

      【解决方案4】:

      好吧,如果两个数字都以 0 开头,您可以检查以确保两者都不为 0,或者在两个文本字段都收到文本更改事件时触发数学运算。我不确定您使用的是什么平台,因此无法提供更多信息。

      【讨论】:

      • 对不起,它是安卓系统。并且这 2 个值确实从 0 开始,但是所有的变化都是用户一次又一次地改变它们;)
      • 那么让我直说吧。如果我同时更改这两个数字,应用程序应该会显示总数。如果我稍后更改一个数字,我会显示新的总数。如果是这样,只需检查文本更改事件。
      猜你喜欢
      • 1970-01-01
      • 2017-09-05
      • 2015-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-08
      相关资源
      最近更新 更多