android:imeOptions属性
2014-02-22 12:45
453 查看
---------------------
默认情况下软键盘右下角的按钮为“下一个”,点击会到下一个输入框,保持软键盘
设置 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>
默认情况下软键盘右下角的按钮为“下一个”,点击会到下一个输入框,保持软键盘
设置 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>
相关文章推荐
- 安卓android中 The connection to adb is down 解决方法,笔者自己解决的经验
- android系统不调用系统界面后台发送彩信的实现
- android 高效加载大图
- 【Android】自定义View之Canvas的使用
- Android四大基本组件介绍与生命周期
- android的四大组件(转)
- Android 布局之LinearLayout 子控件weight权重的作用详析
- Android4.4新增调试工具
- android 案子git管理
- Android Camera CameraHal.cpp 初始化分析
- Android opengl 2d绘图/贴图详细教程
- linphone-android移植
- Android上试用Linphone(Free SIP VOIP Client)
- android几种定时器机制及区别【转载】
- android初学者之HandlerThread(2)
- android初学者之HandlerThread
- Android基础学习篇之零:Android入门的最最基本常识
- Android应用程序通过JNI调用驱动程序(友善Smart210)
- 【Android】View绘制过程分析之draw
- Android 截取屏幕图片并保存