2017-02-20 74 views
3

有没有办法在AlertDialog的Android创建多的EditText。我设置了setLines,并且它显示了几行较大的EditText。但是当我输入时,它不会进入下一行,并且仍然键入相同行。这是我的代码。的Android AlertDialog多的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(); 

我的对话框如下所示。 enter image description here

那么我该如何解决这个问题。感谢致敬。

回答

4

尝试此代码为您的EditText:

input.setSingleLine(false); //add this 
input.setLines(4); 
input.setMaxLines(5); 
input.setGravity(Gravity.LEFT | Gravity.TOP); 
input.setHorizontalScrollBarEnabled(false); //this 
-1

在XML中设置属性android:inputType="textMultiLine"

如果不起作用,您必须执行TextWatcher并自行手动分行。

3

使用输入类型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

这是为我工作。您可以使用此属性为您运行时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" /> 
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();