Android EditText imeOptions属性详解

来源:互联网 发布:软件开发xyhlrj 编辑:程序博客网 时间:2024/05/16 23:56

在我们的手机中,虽然通常输入法软键盘右下角会是回车按键,但我们经常会看到点击不同的编辑框,输入法软键盘右下角会有不同的图标。

例如:
点击浏览器网址栏的时候,输入法软键盘右下角会变成“GO”或“前往。
而我们点击Google搜索框,输入法软键盘右下角会变成 放大镜 或者“搜索”。

而决定这个图标的变换的参数就是EditText中的 android:imeOptions属性。

android:imeOptions的值有actionGo、 actionSend 、actionSearch、actionDone等 。


技术分享


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


技术分享


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


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


public class IMEOptionsActivity extends Activity implements OnEditorActionListener {      EditText etDone;      EditText etEmail;      EditText etNumber;      @Override      public void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.imf_layout);          etDone= (EditText)findViewById(R.id.done_content);          etEmail = (EditText)findViewById(R.id.email_content);          etNumber = (EditText)findViewById(R.id.number_content);          etDone.setOnEditorActionListener(this);          etEmail.setOnEditorActionListener(this);          etNumber.setOnEditorActionListener(this);      }      @Override      public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {          switch(actionId){          case EditorInfo.IME_NULL:              System.out.println("Done_content: " + v.getText() );              break;          case EditorInfo.IME_ACTION_SEND:              System.out.println("send a email: "  + v.getText());              break;          case EditorInfo.IME_ACTION_DONE:              System.out.println("action done for number_content: "  + v.getText());              break;          }          return true;      }  }  

Android EditText imeOptions属性详解

标签:android   edittext   imeoptions   输入法   

0 0
原创粉丝点击