私はユーザにテキストを編集テキストに入力させようとしています。ユーザーがEnterキーを押すと、テキストを編集テキストから取り出してArrayListに追加します。編集テキストからkeyEventを制御する際に問題が発生しています。処理editTextでEnterキーを押す
public class MainActivity extends Activity {
ArrayList<String> array_list;
ListAdapter lv;
ListView list;
EditText edittext;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
array_list = new ArrayList<String>();
edittext = (EditText) findViewById(R.id.textView);
lv = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, array_list);
list = (ListView) findViewById(R.id.lstView);
list.setAdapter(lv);
edittext.requestFocus();
edittext.setOnEditorActionListener(new TextView.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
boolean handled = false;
if (actionId == EditorInfo.IME_ACTION_GO) {
array_list.add(edittext.getText().toString());
edittext.setText("");
edittext.requestFocus();
}
return handled;
}
});
}
}
私は、ユーザがenterを押すと、フィールドからテキストを受け取り、それをarrayListに追加する必要があります。次に、テキストフィールドからテキストを消去し、再びフォーカスを与えます。
あなたのコードを表示してください... IME: – Christopher
私は、人々がonKeyListenersとtextWatchersを使用するのを見ました。私はちょうどどれが使いやすく、どのように実装するのだろうと思っています。 –
彼らは実際には違うことをします。 'OnKeyListener'は特定のキーボードキーを聴いて、その時に動作します。一方、' TextWatcher'は新しいテキストを受け取り、 'EditText'が複数行に設定されていない限り、おそらく\ n文字を受け取りません。それにもかかわらず、私はOnKeyListenerが最良のアプローチであると信じています。 –