-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中輸入的內容以及你想要得到的結果 –