Enter a key starting a new line in EditText instead of sending text (Android)

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!

+7
android android-edittext
source share
4 answers

Set the singleLine property of the EditText widget to true:

 <EditText android:singleLine="true" android:id="@+id/myEditText" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="@string/addItemHint" android:imeOptions="actionDone" /> 
+13
source share
 android:inputType="textMultiLine" 

adding this property to edittext will solve the problem

+2
source share
 android:inputType="textImeMultiLine" 

In my case, this solved the problem!

0
source share

android: singleLine = "true" is stripped, use

Android: MAXLINES = "1"

android: inputType = "text"

Android: imeOptions = "actionNext"

0
source share

All Articles