我现在编写的代码接受来自一个EditText
的两个输入,并显示带有两个输入的Toast
消息。
这是onCreate()
方法中的代码。
final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED, InputMethodManager.HIDE_IMPLICIT_ONLY);
etPIN.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView textView, int actionId, KeyEvent keyEvent) {
String pin1 = null, pin2 = null;
if (actionId == EditorInfo.IME_ACTION_DONE) {
pin1 = etPIN.getText().toString();
tvPINGuide.setText(getString(R.string.confirm_pin));
etPIN.setText(null);
}
if(actionId == EditorInfo.IME_ACTION_DONE) {
pin2 = etPIN.getText().toString();
Toast.makeText(PINActivity.this, "pin1: " + pin1 + ", pin2: " + pin2, Toast.LENGTH_SHORT).show();
}
return true;
}
});
使用此代码,似乎不会进入第二步,即获取pin2
的值。当我运行代码并单击Toast
消息时,就像这样。
pin1: 1234, pin2:
那么我应该怎么做以下两件事呢?
pin1
和pin2
字符串值,并最终将其显示给Toast
。答案 0 :(得分:0)
首先,您需要将pin1
和pin2
声明为全局变量
然后按如下方式更改onEditorAction
:
if (actionId == EditorInfo.IME_ACTION_DONE) {
if(TextUtils.isEmpty(pin1)) { //if pin1 is not entered so far
pin1 = etPIN.getText().toString(); //then enter it
tvPINGuide.setText(getString(R.string.confirm_pin));
etPIN.setText(null);
} else { //else pin2 is not entered
pin2 = etPIN.getText().toString(); //enter it
Toast.makeText(PINActivity.this, "pin1: " + pin1 + ", pin2: " + pin2).show(); //and show the toast
}
}
return true;