android:imeOptions属性
16lz
2021-12-04
默认情况下软键盘右下角的按钮为“下一个”,点击会到下一个输入框,保持软键盘
设置 android:imeOptions="actionDone" ,软键盘下方变成“完成”,点击后光标保持在原来的输入框上,并且软键盘关闭
在这里设置的imeOptions如何使用呢?如下面的代码,让EditText实现setOnEditorActionListener,在onEditAction方法中actionId就对应我们设置的imeOptions。系统默认的actionId有:EditorInfo.IME_NULL、EditorInfo.IME_ACTION_SEND、EditorInfo.IME_ACTION_DONE等。这样我们就可以根据不同的EditText来实现不同的软键盘右下角功能键。
Java代码
- packagecom.test;
- importcom.test.main.TestAsyn;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.view.KeyEvent;
- importandroid.view.inputmethod.EditorInfo;
- importandroid.widget.EditText;
- importandroid.widget.TextView;
- importandroid.widget.TextView.OnEditorActionListener;
- importandroid.widget.Toast;
- publicclassIMFActivityextendsActivityimplementsOnEditorActionListener{
- EditTextetDefault;
- EditTextetEmail;
- EditTextetNumber;
- /**Calledwhentheactivityisfirstcreated.*/
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.imf_layout);
- etDefault=(EditText)findViewById(R.id.default_content);
- etEmail=(EditText)findViewById(R.id.email_content);
- etNumber=(EditText)findViewById(R.id.number_content);
- etDefault.setOnEditorActionListener(this);
- etEmail.setOnEditorActionListener(this);
- etNumber.setOnEditorActionListener(this);
- }
- @Override
- publicbooleanonEditorAction(TextViewv,intactionId,KeyEventevent){
- switch(actionId){
- caseEditorInfo.IME_NULL:
- System.out.println("nullfordefault_content:"+v.getText());
- break;
- caseEditorInfo.IME_ACTION_SEND:
- System.out.println("actionsendforemail_content:"+v.getText());
- break;
- caseEditorInfo.IME_ACTION_DONE:
- System.out.println("actiondonefornumber_content:"+v.getText());
- break;
- }
- //Toast.makeText(this,v.getText()+"--"+actionId,Toast.LENGTH_LONG).show();
- returntrue;
- }
- }
- <?xmlversion="1.0"encoding="utf-8"?>
- <ScrollViewxmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"android:layout_height="fill_parent">
- <TableLayoutandroid:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <TableRow>
- <TextViewandroid:text="Nospecialrules"android:id="@+id/TextView01"
- android:layout_width="wrap_content"android:layout_height="wrap_content"></TextView>
- <EditTextandroid:text="1111111111111"android:id="@+id/default_content"
- android:layout_width="fill_parent"android:layout_height="wrap_content"></EditText>
- </TableRow>
- <TableRow>
- <TextViewandroid:text="Emailaddress:"android:id="@+id/TextView01"
- android:layout_width="wrap_content"android:layout_height="wrap_content"></TextView>
- <EditTextandroid:text=""android:id="@+id/email_content"
- android:layout_width="fill_parent"android:layout_height="wrap_content"
- android:inputType="text|textEmailAddress"
- android:imeOptions="actionSend"></EditText>
- </TableRow>
- <TableRow>
- <TextViewandroid:text="Signeddecimalnumber:"android:id="@+id/TextView01"
- android:layout_width="wrap_content"android:layout_height="wrap_content"></TextView>
- <EditTextandroid:text=""android:id="@+id/number_content"
- android:layout_width="fill_parent"android:layout_height="wrap_content"
- android:inputType="number|numberSigned|numberDecimal"
- android:imeOptions="actionDone"></EditText>
- </TableRow>
- </TableLayout>
- </ScrollView>
更多相关文章
- TextView属性详解
- android:windowSoftInputMode属性使用
- EditText的inputType属性详解,让指定的EditText获取焦点并弹出软
- android:windowSoftInputMode
- android:windowSoftInputMode="adjustPan"
- Android输入系统与Qwerty物理键盘的支持
- Android(安卓)SDK Installed On Mac
- Android(安卓)P窗口机制之DecorView加载流程
- android:configChanges属性