默认情况下软键盘右下角的按钮为“下一个”,点击会到下一个输入框,保持软键盘



设置 android:imeOptions="actionDone" ,软键盘下方变成“完成”,点击后光标保持在原来的输入框上,并且软键盘关闭



android:imeOptions="actionSend" 软键盘下方变成“发送”,点击后光标移动下一个

在这里设置的imeOptions如何使用呢?如下面的代码,让EditText实现setOnEditorActionListener,在onEditAction方法中actionId就对应我们设置的imeOptions。系统默认的actionId有:EditorInfo.IME_NULL、EditorInfo.IME_ACTION_SEND、EditorInfo.IME_ACTION_DONE等。这样我们就可以根据不同的EditText来实现不同的软键盘右下角功能键。

Java代码
  1. packagecom.test;
  2. importcom.test.main.TestAsyn;
  3. importandroid.app.Activity;
  4. importandroid.os.Bundle;
  5. importandroid.view.KeyEvent;
  6. importandroid.view.inputmethod.EditorInfo;
  7. importandroid.widget.EditText;
  8. importandroid.widget.TextView;
  9. importandroid.widget.TextView.OnEditorActionListener;
  10. importandroid.widget.Toast;
  11. publicclassIMFActivityextendsActivityimplementsOnEditorActionListener{
  12. EditTextetDefault;
  13. EditTextetEmail;
  14. EditTextetNumber;
  15. /**Calledwhentheactivityisfirstcreated.*/
  16. @Override
  17. publicvoidonCreate(BundlesavedInstanceState){
  18. super.onCreate(savedInstanceState);
  19. setContentView(R.layout.imf_layout);
  20. etDefault=(EditText)findViewById(R.id.default_content);
  21. etEmail=(EditText)findViewById(R.id.email_content);
  22. etNumber=(EditText)findViewById(R.id.number_content);
  23. etDefault.setOnEditorActionListener(this);
  24. etEmail.setOnEditorActionListener(this);
  25. etNumber.setOnEditorActionListener(this);
  26. }
  27. @Override
  28. publicbooleanonEditorAction(TextViewv,intactionId,KeyEventevent){
  29. switch(actionId){
  30. caseEditorInfo.IME_NULL:
  31. System.out.println("nullfordefault_content:"+v.getText());
  32. break;
  33. caseEditorInfo.IME_ACTION_SEND:
  34. System.out.println("actionsendforemail_content:"+v.getText());
  35. break;
  36. caseEditorInfo.IME_ACTION_DONE:
  37. System.out.println("actiondonefornumber_content:"+v.getText());
  38. break;
  39. }
  40. //Toast.makeText(this,v.getText()+"--"+actionId,Toast.LENGTH_LONG).show();
  41. returntrue;
  42. }
  43. }
xml文件: Xml代码
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <ScrollViewxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"android:layout_height="fill_parent">
  4. <TableLayoutandroid:layout_width="fill_parent"
  5. android:layout_height="fill_parent">
  6. <TableRow>
  7. <TextViewandroid:text="Nospecialrules"android:id="@+id/TextView01"
  8. android:layout_width="wrap_content"android:layout_height="wrap_content"></TextView>
  9. <EditTextandroid:text="1111111111111"android:id="@+id/default_content"
  10. android:layout_width="fill_parent"android:layout_height="wrap_content"></EditText>
  11. </TableRow>
  12. <TableRow>
  13. <TextViewandroid:text="Emailaddress:"android:id="@+id/TextView01"
  14. android:layout_width="wrap_content"android:layout_height="wrap_content"></TextView>
  15. <EditTextandroid:text=""android:id="@+id/email_content"
  16. android:layout_width="fill_parent"android:layout_height="wrap_content"
  17. android:inputType="text|textEmailAddress"
  18. android:imeOptions="actionSend"></EditText>
  19. </TableRow>
  20. <TableRow>
  21. <TextViewandroid:text="Signeddecimalnumber:"android:id="@+id/TextView01"
  22. android:layout_width="wrap_content"android:layout_height="wrap_content"></TextView>
  23. <EditTextandroid:text=""android:id="@+id/number_content"
  24. android:layout_width="fill_parent"android:layout_height="wrap_content"
  25. android:inputType="number|numberSigned|numberDecimal"
  26. android:imeOptions="actionDone"></EditText>
  27. </TableRow>
  28. </TableLayout>
  29. </ScrollView>

更多相关文章

  1. TextView属性详解
  2. android:windowSoftInputMode属性使用
  3. EditText的inputType属性详解,让指定的EditText获取焦点并弹出软
  4. android:windowSoftInputMode
  5. android:windowSoftInputMode="adjustPan"
  6. Android输入系统与Qwerty物理键盘的支持
  7. Android(安卓)SDK Installed On Mac
  8. Android(安卓)P窗口机制之DecorView加载流程
  9. android:configChanges属性

随机推荐

  1. Android(安卓)学习笔记(十四):Activity-Auto
  2. Android(安卓)5.0输入系统分析之InputRea
  3. android发送网络链接的几个类
  4. Android中的5种数据存储方式之——Shared
  5. 黑马66期android学习笔记 day1_快速入门
  6. Android(安卓)如何修改默认的searchable
  7. Android中监听EditText文本输入
  8. Android:ArrayAdapter 与 entries的使用
  9. ProxyDroid使用Eclipse(none maven)重新编
  10. Android(安卓)Failed to allocate memory