我正在Android应用程序中创建一个搜索选项.
在屏幕键盘上按"搜索"后,会触发一个事件,将查询发送到服务器.我想要做的是当没有输入相应的文字时,禁用屏幕键盘上的"搜索"按钮EditText.
我把它添加到EditText:
android:imeOptions="actionSearch"
这就是为什么键盘有一个"搜索"按钮而不是默认的"输入"/"完成".(以防万一你想知道).
好吧,当用户在编辑文本字段后按"确定"按钮时,我试图阻止软键盘关闭.实际上,我想要实现的是:当按下"ok"按钮时,将解析该字段,如果有效,则启动另一个活动.这很容易.
但是,当该字段无效时,我希望软键盘保持打开状态.那就是......一个更复杂的地狱.如果有人知道如何实现这样的事情......
提前致谢.
编辑:我的意思是OK按钮是软键盘上的OK按钮.
当我按 Enter 键时 EditText 失去焦点
并且 Listview 的第一个项目突出显示,但没有发生任何事件
1) 没有发现 ListView 焦点更改
2) 没有发生 ItemCLick 事件并且在滚动 ListView 上突出显示的项目消失了
如何防止在按 Enter 键时失去 EditText 焦点并停止突出显示
下面是我的 xml 和 Java 代码
<EditText
android:id="@+id/et_scanitemcode"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="60"
android:background="@drawable/edittext_background"
android:gravity="right|center_vertical"
android:maxLines="1"
android:paddingLeft="5dp"
android:textColor="@drawable/edittext_color_background" />
<ListView
android:id="@+id/lst_salesScannedItems"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
et_scanitemcode.setOnKeyListener(new EditText.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
Log.i("==>",""+KeyEvent.keyCodeToString(event.getAction()));
Log.i("==>",""+keyCode);
// If the event is a key-down event on the "enter" button
//This is the filter
if (event.getAction()==KeyEvent.ACTION_DOWN && keyCode == KeyEvent.KEYCODE_ENTER) { …Run Code Online (Sandbox Code Playgroud)