android:imeOptions属性

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


android:imeOptions属性
 

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


android:imeOptions属性
 

 

 

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

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

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 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>
 

你可能感兴趣的:(软键盘,imeOptions)