Android软键盘动态OK /回车键

时间:2013-12-04 14:50:57

标签: android keyboard

我的应用中有一个EditText字段,我希望软键盘默认显示OK按钮。当我按下shift键允许创建一个新行时,我也希望这个OK按钮切换到默认的Enter按钮。 我没有办法做到这一点。 现在我只使用

显示OK按钮
edit.setImeOptions(EditorInfo.IME_ACTION_DONE);

在一条线上。 我需要的是与主屏幕“添加快速备注”字段中Google保持应用程序中显示的键盘相同的键盘

1 个答案:

答案 0 :(得分:1)

我已经从Android AOSP来源查看了Compose活动并构建了它:

我将这个类复制到我的测试项目(包名com.example.test)中:

https://android.googlesource.com/platform/packages/apps/UnifiedEmail/+/5b8799a/src/com/android/mail/compose/EnterSubject.java

然后创建了这个布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <com.example.test.EnterSubject
        android:id="@+id/editText1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:inputType="textEmailSubject|textAutoCorrect|textCapSentences|textImeMultiLine|textMultiLine"
        android:imeOptions="actionDone|flagNoExtractUi|flagNoFullscreen"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="18dp"
        android:ems="10" >

        <requestFocus />
    </com.example.test.EnterSubject>

</RelativeLayout>

这基本上是这个文件的重构版本: https://android.googlesource.com/platform/packages/apps/UnifiedEmail/+/5b8799a/res/layout/compose_subject.xml 和这个文件: https://android.googlesource.com/platform/packages/apps/UnifiedEmail/+/5b8799a/res/values/styles.xml

结果如下:按下shift键将下一个按钮变为输入按钮。