【问题标题】:Move focus from one Edit text box to another将焦点从一个编辑文本框移到另一个
【发布时间】:2010-12-20 06:43:50
【问题描述】:

我正在编写一个简单的计算器应用程序(使用带有 3 个编辑框和一些按钮的绝对布局),它有两个输入文本框和一个输出框。

input1 = (EditText) findViewById(R.id.input1);
input2 = (EditText) findViewById(R.id.input2);

现在,一旦用户在 input1 中输入一些数字并按下“+”,现在我想将焦点从 input1 转移到 input2。我该怎么做?

我在'+'的按键上尝试了下面的代码

onClick(View arg0){
    operator.setText("+");

    //Move focus from input1 to input2
    input1.clearFocus();
    input2.setNextFocusDownId(input2.getId());
}

但这不起作用..你能帮我解决这个问题吗?

【问题讨论】:

  • 好吧,我找到了答案,我们可以简单地调用 input2.requestfocus();改变焦点。
  • 如果你需要在TextWatcher中使用这个,你需要泛化它,这意味着你不必使用特定的对象来调用requestFocus();你有答案吗?

标签: android focus


【解决方案1】:

嗯,我找到了答案:我们可以简单地调用input2.requestFocus();来改变焦点。

【讨论】:

    【解决方案2】:

    [顺便说一句,您想避免使用 AbsoluteLayout - 它已被弃用,可能会被删除。]

    您希望操作发生在 KeyListener 的 onKeyDown 方法中,而不是使用 onClick。

    见:setKeyListener

    然后你可以用

    检查KeyEvent的密钥
    KeyEvent.getAction() == KeyEvent.KEYCODE_PLUS
    

    【讨论】:

      【解决方案3】:

      试试这个:

      input1.setNextFocusDownId(input2.getId());

      你正在使用 input2,我猜你想从 input1 转到 input2。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多