EditText
から2つの入力を受け入れ、2つの入力を持つToast
メッセージを表示するコードを作成しています。Android:1つの編集テキストから2つの入力を取得
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:
だから私は、次の2つのことを行うために何をすべきでしょうか?
- 各
pin1
とpin2
文字列値を取得し、最終的にToast
にそれらを示しています。 - 2番目の文字列値を取得して終了ボタンをクリックすると、ソフトキーボードが非表示になります。
をあなたが本当にあなたのコードで奇妙な何かをします。最初に、EditTextからテキストを取得します: 'pin1 = etPIN.getText()。toString();'。次に、EditTextのテキストを 'null'に設定します:' etPIN.setText(null); '。そして今度はそれから再び 'pin2 = etPIN.getText()。toString();'というテキストを取得し、なぜpin2が空であるのか不思議です。これは、この行で空にするためです: 'etPIN.setText(null);' –
@VladMatvienkoそれでは、何が解決策になりますか?私はプログラミング自体に本当に新しいです。 –
あなたが何を正確に記述すれば、私は解決策を見つけようとします。あなたがEditTextに入力したものと、結果として得たいものを教えてください。 –