Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

EditText with single text line, line wrapping and Done action?

Tags:

I am trying to have an EditText with the following characteristics when editing with a soft key. I ready the documentation, searched here, play with the parameters but could not find a working configuration.

  1. The EditView view on the screen has height for a few lines (e.g. 3-4).
  2. The content text is a single line (that is, no line breaks).
  3. If the content text is longer than the view's width it should wrap to next line
  4. The Enter key of the soft key shows the Done action label.

I could achieve {1,2,3} and {1,2,4} but not {1,2,3,4}. My rational is that since the content is a single line (no line breaks) the Enter key is not used and thus should be able to be changed to the Done label.

My setup code looks like this

editText.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES | InputType.TYPE_TEXT_FLAG_IME_MULTI_LINE); editText.setHorizontallyScrolling(false); editText.setSingleLine(false); // This does not work. Soft keyboard has Enter action. editText.setImeOptions(EditorInfo.IME_ACTION_DONE); 

Is it possible? Any suggestion?

like image 696
user1076637 Avatar asked Dec 02 '11 02:12

user1076637


1 Answers

This combination (and the specific order of the EditText method calls) should produce the configuration that you want:

  editText.setInputType(     InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);   editText.setSingleLine(true);   editText.setLines(4); // desired number of lines   editText.setHorizontallyScrolling(false);   editText.setImeOptions(EditorInfo.IME_ACTION_DONE); 
like image 200
Joe Avatar answered Nov 20 '22 23:11

Joe