-2
我正在编写一个代码,它接受来自一个EditText
的两个输入,并显示带有两个输入的Toast
消息。Android:从一个编辑文本中获取两个输入
以下是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
最后。 - 获取第二个字符串值并单击完成按钮后,隐藏软键盘。
你真的与你的代码的一些奇怪的事情。首先从EditText获得文本:'pin1 = etPIN.getText()。toString();'。然后你将EditText的文本设置为'null':'etPIN.setText(null);'。现在你再次从它的文本'pin2 = etPIN.getText()。toString();',并且奇怪,为什么pin2是空的。这是因为你用下面这行将它设置为空:'etPIN.setText(null);' –
@VladMatvienko那么解决方案是什么?我对编程本身很陌生。 –
一旦你描述了你想要的东西,我会试着找出一个解决方案。告诉我,你在EditText中输入的内容以及你想要得到的结果 –