我是 Android 新手,正在研究书中的待办事项列表示例。我有一个 Activity,它在它下面显示一个 EditText 和一个 ListView。有一个 onKey 事件应该将 EditText 中的文本添加到 ListView 并清除 EditText。但是,当我在键盘上按 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");
just 以确保对 myEditText 的引用正常工作,就是这样。我尝试从 onKey 事件中删除 if 语句,但它似乎根本没有注册关键事件。谁能告诉我在这里做错了什么?