有人可以提供一个解决方案来获得软键盘的工作侦听器吗DONE
按钮,和/或解释我当前的方法做错了什么?
我的 Xml 和 Java 设置
- 在 Xml 中,有一个简单的 EditText 设置为
android:imeOptions="actionDone"
- 在Java中,它只有一个基本的
TextView.OnEditorActionListener
宣布
So setOnEditorActionListener()
当点击设备软键盘提交(又名DONE
) 按钮 - 下面的绿色箭头按钮;仅清除 EditText 字段
但是当单击计算机时,该侦听器确实会被调用Enter
key (通过亚行附).
我认为它应该适用于这两个按钮..这是不对的吗?
XML 布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.demo.MainActivity">
<EditText
android:id="@+id/comment_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:maxLines="1"
android:imeOptions="actionDone"
/>
</LinearLayout>
Java 活动文件:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
((EditText) findViewById(R.id.comment_text)).setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
int i = 5; // added this to set a break point
return false;
}
});
}
}
解决方案更新
感谢 @Apoorv Mehrotra 的回答,事实证明我的 EditText 缺少这一属性,以便识别软键盘事件。将其添加到上面的 Xml 中即可解决问题。
android:inputType="text"
我遇到了同样的问题,对我来说,添加android:singleLine="true"
在 EditText 中做到了这一点
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)