【问题标题】:Android edittext key return goes to next textAndroid edittext 键返回到下一个文本
【发布时间】:2011-06-27 07:32:56
【问题描述】:

我有一系列 EditText 条目并且想要它,因此当用户按下回车键时,它将转到下一个 EditText。我知道如何一次执行此操作,但有没有办法告诉所有编辑文本控件使用相同的功能来检查键输入并推进光标。为每个 EditText 设置一个函数似乎有点疯狂

【问题讨论】:

标签: android key android-edittext


【解决方案1】:

比嗅探键简单得多:尝试设置android:singleLine="true"android:imeOptions="actionNext"(至少对于单行输入文本视图)。在 Android documentation 中阅读更多有关 TextView 的内容。

更新: singleLine 现在是 deprecated,但你可以忽略它。只要您没有明确设置android:inputType="textMultiLine",这是可编辑文本的默认行为,并且inputType 会覆盖建议的singleLine 替换maxLines="1" 无论如何都是可编辑文本。

【讨论】:

  • android:singleLine 不折旧。贬值的是 singleLine 常量
  • @Olumide:有趣 - 如果这是真的,那么这是一个文档错误:“此属性已弃用。使用 maxLines 来更改静态文本的布局,并在 inputType 属性中使用 textMultiLine 标志用于可编辑的文本视图。”
【解决方案2】:

对于 Yoni 给出的答案的替代或更新方法...

由于singleLine被认为是deprecated,我们可以手动设置为android:maxLines="1"android:inputType="text"

小解释:

  • 我们使用android:inputType="text" 专门将输入视为plain text
  • 我们使用 android:maxLines="1" 将文本的最大行数设置为 1(正如它所建议的那样)。

单独使用 maxLines="1" 不会产生任何影响,但正如 Adam 提到的那样,单独使用 inputType="text" 也可能有效(尽管我没有检查过这一点)。

【讨论】:

    【解决方案3】:

    添加

        android:inputType="text"
    

    在 XML 中就足够了。当您没有定义输入类型时,它会转到下一行。

    【讨论】:

      【解决方案4】:

      您可以尝试向所有 editText 对象添加单个事件侦听器:

      OnKeyListener myKeyListener = new OnKeyListener() {
              @Override
              public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
                  // TODO: do what you got to do
                  return false;
              }
          };
      editText1.setOnKeyListener(myKeyListener);
      editText2.setOnKeyListener(myKeyListener);
      editText3.setOnKeyListener(myKeyListener);
      

      【讨论】:

        【解决方案5】:

        在styles.xml 中应用这个自定义样式

        <style name="SingleLineText">
            <item name="android:inputType">text</item>
            <item name="android:maxLines">1</item>
        </style>
        

        然后像这样在EditText中设置

         style="@style/SingleLineText"
        

        【讨论】:

          【解决方案6】:

          在EditText中添加以下行

           android:singleLine="true"
           android:maxLines="1"
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-09-27
            • 1970-01-01
            • 2012-01-09
            • 2017-03-02
            相关资源
            最近更新 更多