我正在尝试创建编辑文本,当用户按下输入时,它将转到新行并允许用户输入更多文本。
这是我的设计部分
<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;
}
});
答案 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" />
希望它会帮助你