Android Soft keyboard action button

2019-01-23 01:13发布

My layout has 4 EditText views and a submit Button view. I need to have "Next" button for the first 3 EditText's and a "Done" button for 4th EditText field in place of a "New Line" key of soft keyboard.

How can this be done?

4条回答
聊天终结者
2楼-- · 2019-01-23 01:43

I think what you're looking for is something like this:

EditText nextText = new EditText(this)
{
    @Override
    public InputConnection onCreateInputConnection(final EditorInfo outAttrs)
    {
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_NEXT;
        return (super.onCreateInputConnection(outAttrs));
    }
};

EditText doneText = new EditText(this)
{
    @Override
    public InputConnection onCreateInputConnection(final EditorInfo outAttrs)
    {
        outAttrs.imeOptions |= EditorInfo.IME_ACTION_DONE;
        return (super.onCreateInputConnection(outAttrs));
    }
};

It first one will take the user to the next field in the layout that accepts text. The second will close the IME (the soft keyboard).

查看更多
放我归山
3楼-- · 2019-01-23 01:47

In your layout, just set the XML attributes android:imeOptions="actionNext" for your first three text boxes and android:imeOptions="actionDone" for the last one.

See: android:imeOptions documentation

Also, there's a small XML example in the training docs.

查看更多
来,给爷笑一个
4楼-- · 2019-01-23 01:53

to navigate the focus to the next edit field add

android:imeOptions="flagNavigateNext"

and for dismissing the softkey with done click add

android:imeOptions="actionDone"

on your layout :)

查看更多
啃猪蹄的小仙女
5楼-- · 2019-01-23 01:57

Add android:singleLine="true" in your button xml

查看更多
登录 后发表回答