捕捉输入法行动
问题描述:
我试图捕捉当用户点击完成使用软键盘。以下代码无法正常工作,但几乎相同的代码正在另一个页面上工作。这段代码有什么问题?调试器显示它从不调用监听器。它也不会调用login
函数。捕捉输入法行动
我试图添加选项来查看文件,甚至自定义一个。
//view
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/prompt_password"
android:inputType="textPassword"
android:maxLines="1"/>
//java, onCreateView (b is data binding)
b.password.setImeOptions(EditorInfo.IME_ACTION_DONE);
RxTextView.editorActionEvents(b.password)
.subscribe(a -> {
login();
});
//or old way is not working too
b.password.setOnEditorActionListener((v, actionId, event) -> {
login();
return false;
});
更新: 当我移动语句另一个函数,它的工作原理。
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
RxTextView.editorActionEvents(b.password)
.subscribe(a->{
login();
});
}
答
尝试使用这个像中提到:
Android Use Done button on Keyboard to click button
b.password.setOnEditorActionListener(new OnEditorActionListener() {
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
if ((event != null && (event.getKeyCode() == KeyEvent.KEYCODE_ENTER)) || (actionId == EditorInfo.IME_ACTION_DONE)) {
Log.i(TAG,"Enter pressed");
}
return false;
}
});
感谢您的回答,但没有奏效。 – MmtBkn