2016-07-11 2 views
0

Я пытаюсь создать текст редактирования, в котором при нажатии пользователем он переходит в новую строку и позволяет пользователю вводить больше текста.новая строка, когда пользователь вводит текст редактирования в android

вот мой дизайн часть

<android.support.design.widget.TextInputLayout 
         android:layout_width="match_parent" 
         android:layout_height="wrap_content"> 

         <EditText 
          android:id="@+id/discussion" 
          android:layout_width="match_parent" 
          android:layout_height="100dp" 
          android:inputType="textMultiLine" 
          android:maxLines="5" 
          android:hint="Discussion outcome" 
          android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890 "/> 

        </android.support.design.widget.TextInputLayout> 

Вот мой код, но проблема заключается в позиции курсора не собирается на следующую строку. я пытался discussion.append("\n") тоже, но оно не работает

discussion= (EditText) findViewById(R.id.discussion); 
     discussion.setOnKeyListener(new View.OnKeyListener() { 
      @Override 
      public boolean onKey(View view, int i, KeyEvent keyEvent) { 

       Log.e(TAG , "Key Action "+keyEvent.getAction()); 

       if(keyEvent.getAction() == KeyEvent.ACTION_UP && keyEvent.getKeyCode() == KeyEvent.KEYCODE_ENTER){ 

        String data =discussion.getText().toString(); 

        discussion.setText(data+"\n"); 
        Log.e(TAG , "Key "+keyEvent.getKeyCode()); 



       } 
       return false; 
      } 
     }); 

ответ

3

Вы должны включить символ новой строки \n в допустимых цифр в вашем XML:

<android.support.design.widget.TextInputLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <EditText 
     android:id="@+id/discussion" 
     android:layout_width="match_parent" 
     android:layout_height="100dp" 
     android:inputType="textMultiLine" 
     android:maxLines="5" 
     android:hint="Discussion outcome" 
     android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890\n "/> 

</android.support.design.widget.TextInputLayout> 

Далее, вам не нужны прослушиватели клавиш если вы это сделаете.

+0

Бинго, который сработал! – Hunt

+0

Как насчет других языков? –

0

попробовать это

<EditText 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:inputType="textMultiLine" 
    android:ems="10" 
    android:id="@+id/edt_address" 
    android:hint="Shipping Address" /> 

надеюсь, что это поможет вам

+0

Я пробовал это уже из другого потока stackoverflow, но он не работал, что я пытаюсь реализовать, когда пользователь нажимает клавишу ввода, курсор должен перейти в следующую строку. – Hunt

Смежные вопросы