Android属性-android:imeOptions
本文转自:http://liliang1222.iteye.com/blog/1130062
默认情况下软键盘右下角的按钮为“下一个”,点击会到下一个输入框,保持软键盘
设置 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来实现不同的软键盘右下角功能键。
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>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端