setOnKeyListener not responding
I am new to Android and working through a to do list example from a book.
I have one Activity which is displaying an EditText and a ListView beneath
it. There is an onKey event which should add the text from the EditText to
the ListView and clear the EditText. However, when I hit Enter on the
keyboard all that happens is a new line is added to the EditText and
nothing is added to the ListView.
The onCreate code is:
@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;
}
});
}
I've added the `myEditText.setText("test");' just to ensure the reference
to myEditText is working, which it is. I've tried removing the if
statements from the onKey event and it just doesn't appear to be
registering key events at all. Can anyone advise what I'm doing wrong
here?
No comments:
Post a Comment