当用户在android中输入编辑文本时新行

时间:2016-07-11 10:04:06

标签: 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 个答案:

答案 0 :(得分:3)

您应该在xml中允许的数字中包含换行符\n

<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>

接下来,如果你这样做,你不需要任何关键的监听器。

答案 1 :(得分:1)

尝试以下解决方案:https://stackoverflow.com/a/20475011/13179254 基本上,您需要做什么:

科特琳:

isSingleLine = false

Java:

setSingleLine(false)

Xml:

android:singleLine="false"

答案 2 :(得分: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" />

希望它会帮助你