有没有办法在 Android 的 AlertDialog 中创建多行 EditText 。我设置了setLines,它为几行显示了更大的 EditText 。但是当我输入它时,它不会转到下一行并仍然输入同一行。这是我的代码。
Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Comment");
final EditText input = new EditText(this);
final String item_value = ItemList.get(position).get("comment");
input.setText(item_value);
input.setInputType(InputType.TYPE_CLASS_TEXT);
input.setLines(5);
input.setMaxLines(5);
input.setGravity(Gravity.LEFT | Gravity.TOP);
builder.setView(input);
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
builder.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
所以我该如何解决这个问题。谢谢和问候。
答案 0 :(得分:7)
为EditText尝试此代码:
input.setSingleLine(false); //add this
input.setLines(4);
input.setMaxLines(5);
input.setGravity(Gravity.LEFT | Gravity.TOP);
input.setHorizontalScrollBarEnabled(false); //this
答案 1 :(得分:4)
使用输入类型input.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE)
和input.setSingleLine(false)
。所以你的代码将是 -
Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Comment");
final EditText input = new EditText(this);
final String item_value = ItemList.get(position).get("comment");
input.setText(item_value);
input.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
input.setSingleLine(false)
input.setLines(5);
input.setMaxLines(5);
input.setGravity(Gravity.LEFT | Gravity.TOP);
builder.setView(input);
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});
builder.setNegativeButton("Cancel",
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
答案 2 :(得分:2)
这对我有用。您可以将此属性用于运行时EditText。
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="top|left"
android:inputType="textMultiLine"
android:lines="8"
android:maxLines="10"
android:minLines="6"
android:scrollbars="vertical" />
答案 3 :(得分:1)
Builder builder = new AlertDialog.Builder(this);
builder.setTitle("Comment");
final EditText input = new EditText(this);
final String item_value = ItemList.get(position).get("comment");
input.setText(item_value);
input.setInputType(InputType.TYPE_CLASS_TEXT);
input.setSingleLine(false);
input.setMaxLines(5);
input.setGravity(Gravity.LEFT | Gravity.TOP);
builder.setView(input);
builder.setPositiveButton("Ok", new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int whichButton) {
}
});
builder.setNegativeButton("Cancel",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
答案 4 :(得分:-1)
在XML中设置属性android:inputType="textMultiLine"
。
如果它不起作用,你必须实现TextWatcher
并自己手动断行。