I have a simple todolist application that I create when new todo objects are added via EditText View. So I try to have it send a new item to the list when I press the enter key . For some reason, though , it just introduces a new line instead . I also noticed that it works fine when I use the enter key through AVD through eclipse, but the problem occurs when I launch it through my Nexus 4.
Here is my code:
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.todo_main); //Create reference to the ListView in the main layout ListView myListView = (ListView)findViewById(R.id.myListView); //Create a reference to the EditText view in the main layout for adding new items final EditText editText = (EditText)findViewById(R.id.myEditText); //Create a an arraylist to hold all the todo items final ArrayList<String> todoList = new ArrayList<String>(); //Create an ArrayAdaptor object to be able to bind ArrayLists to ListViews final ArrayAdapter<String> arrayAdaptor = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, todoList); myListView.setAdapter(arrayAdaptor); //Listens for certain keys to be pushed, particular the dpad center key or enter key editText.setOnKeyListener(new View.OnKeyListener() { @Override public boolean onKey(View v, int keyCode, KeyEvent event) { if(event.getAction() == KeyEvent.ACTION_DOWN) { if((keyCode == KeyEvent.KEYCODE_ENTER || keyCode == KeyEvent.KEYCODE_DPAD_CENTER)) { //add item in the EditText to the todo list todoList.add(0, editText.getText().toString()); //Update the view by notifying the ArrayAdapter of the data changes arrayAdaptor.notifyDataSetChanged(); editText.setText(""); return true; } return false; } return false; } }); }
And XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ToDoListActivity"> <EditText android:id="@+id/myEditText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/addItemHint" android:imeOptions="actionDone" /> <ListView android:id="@+id/myListView" android:layout_width="match_parent" android:layout_height="wrap_content" />
Please note that I found similar questions about stack overflow, but none of them solved my problem. I tried!
android android-edittext
Tomtaila
source share