Android edittext 键返回转到下一个文本

发布于 2024-10-17 13:17:09 字数 143 浏览 2 评论 0原文

我有一系列 EditText 条目,并且希望当用户按下 Enter 键时它将转到下一个 EditText。我知道如何一次执行此操作,但有没有一种方法可以告诉所有 edittext 控件使用相同的函数来检查按键输入并前进光标。每个 EditText 都有一个函数似乎有点疯狂

I have a series of EditText entries and would like it so when the user hits the enter key it will go to the next Editext. I know how do this one at a time but is there a way to tell all of the edittext controls to use the same function that checks the key entry and advances the cursor. It seems kind of crazy to have one function for each of the EditTexts

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

始终不够 2024-10-24 13:17:09

比嗅探按键简单得多:尝试设置 android:singleLine="true"android:imeOptions="actionNext" (至少对于单行输入文本视图)。请参阅 Android TextView 文档了解更多信息。

更新: singleLine已弃用 现在,但您可以将其省略。只要您未显式设置 android:inputType="textMultiLine",这就是可编辑文本的默认行为,并且 inputType 会覆盖建议的 singleLine 无论如何,将 maxLines="1" 替换为可编辑文本。

Much simpler than sniffing keys: try setting android:singleLine="true" and android:imeOptions="actionNext" (at least for single-line entry textviews). Read more in the Android documentation for TextView.

Update: singleLine is deprecated now, but you can leave it out. It's the default behavior for editable text as long as you don't explicitly set android:inputType="textMultiLine", and inputType overrides the suggested singleLine replacement of maxLines="1" for editable text anyways.

夏の忆 2024-10-24 13:17:09

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

因为 singleLine 被认为是 已弃用,我们可以使用 android:inputType="text" 手动设置为 android:maxLines="1"

小解释:

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

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

For an alternative or a newer approach for the answer given from Yoni...

Since singleLine is considereded deprecated, we can set manually to android:maxLines="1" with android:inputType="text".

Small explanation:

  • We use android:inputType="text" to specifically treat the input as plain text.
  • And we use android:maxLines="1" to set the max lines of the text to 1 (as it suggests).

Using maxLines="1" alone, will not cause any effect, but inputType="text" alone may work also, as Adam mentions (though I haven't checked this).

冷夜 2024-10-24 13:17:09

添加

    android:inputType="text"

XML 就足够了。当您未定义输入类型时,它将转到下一行。

Adding

    android:inputType="text"

in XML is just enough. When You are not defining input type, then it goes to next line.

稚然 2024-10-24 13:17:09

您可以尝试向所有 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);

You could try adding a single event listener to all your editText objects:

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);
已下线请稍等 2024-10-24 13:17:09

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

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

,然后在 EditText 中设置它,如下所示

 style="@style/SingleLineText"

Apply this custom style in styles.xml

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

and then set it in EditText like this

 style="@style/SingleLineText"
宛菡 2024-10-24 13:17:09

在 EditText 中添加以下行

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

Add the following lines in EditText

 android:singleLine="true"
 android:maxLines="1"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文