您的位置:首页 > 移动开发 > Android开发

android输入法ImeOptions

2015-12-02 15:19 676 查看
默认情况下软键盘右下角的按钮为“下一个”,点击会到下一个输入框,保持软键盘



设置 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代码



package com.test;

import com.test.main.TestAsyn;

import android.app.Activity;

import android.os.Bundle;

import android.view.KeyEvent;

import android.view.inputmethod.EditorInfo;

import android.widget.EditText;

import android.widget.TextView;

import android.widget.TextView.OnEditorActionListener;

import android.widget.Toast;

public class IMFActivity extends Activity implements OnEditorActionListener {

EditText etDefault;

EditText etEmail;

EditText etNumber;

/** Called when the activity is first created. */

@Override

public void onCreate(Bundle savedInstanceState) {

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

public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {

switch(actionId){

case EditorInfo.IME_NULL:

System.out.println("null for default_content: " + v.getText() );

break;

case EditorInfo.IME_ACTION_SEND:

System.out.println("action send for email_content: " + v.getText());

break;

case EditorInfo.IME_ACTION_DONE:

System.out.println("action done for number_content: " + v.getText());

break;

}

//Toast.makeText(this, v.getText()+"--" + actionId, Toast.LENGTH_LONG).show();

return true;

}

}

xml文件:

Xml代码



<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent" android:layout_height="fill_parent">

<TableLayout android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TableRow>

<TextView android:text="No special rules" android:id="@+id/TextView01"

android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>

<EditText android:text="1111111111111" android:id="@+id/default_content"

android:layout_width="fill_parent" android:layout_height="wrap_content"></EditText>

</TableRow>

<TableRow>

<TextView android:text="Email address:" android:id="@+id/TextView01"

android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>

<EditText android: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>

<TextView android:text="Signed decimal number:" android:id="@+id/TextView01"

android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>

<EditText android: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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: