私は Android を初めて使用し、本の to do リストの例に取り組んでいます。その下に EditText と ListView を表示するアクティビティが 1 つあります。EditText から ListView にテキストを追加し、EditText をクリアする onKey イベントがあります。ただし、キーボードで Enter キーを押すと、新しい行が EditText に追加され、ListView には何も追加されません。
onCreate コードは次のとおりです。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_to_do_list);
// Get UI references
ListView myListView = (ListView)findViewById(R.id.myListView);
final EditText myEditText = (EditText)findViewById(R.id.myEditText);
myEditText.setText("test");
// Create ArrayList to store To Do items
final ArrayList<String> toDoItems = new ArrayList<String>();
// Create ArrayAdapter to bind items to List View
final ArrayAdapter<String> aa;
aa = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1,
toDoItems);
// Bind Adapter to List View
myListView.setAdapter(aa);
myEditText.setOnKeyListener(new View.OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
if (event.getAction() == KeyEvent.ACTION_DOWN)
if ((keyCode == KeyEvent.KEYCODE_DPAD_CENTER) ||
(keyCode == KeyEvent.KEYCODE_ENTER)) {
toDoItems.add(0, myEditText.getText().toString());
aa.notifyDataSetChanged();
myEditText.setText("");
return true;
}
return false;
}
});
}
myEditText.setText("test");
myEditText への参照が機能していることを確認するためだけに追加しました。onKey イベントから if ステートメントを削除しようとしましたが、キー イベントがまったく登録されていないようです。ここで私が間違っていることを誰かにアドバイスできますか?