2017-02-20 9 views
3

안드로이드에 AlertDialog에 여러 글고을 만들 수있는 방법이 있나요. 나는 setLines를 설정하고 더 큰 숫자를 보여줍니다. EditText 여러 줄을 보여줍니다. 하지만 입력 할 때 다음 줄로 이동하지 않고 계속 입력하면 같은 줄입니다. 여기 내 코드가있다.안드로이드에 AlertDialog 여러 글고

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

당신 글고이 코드를 시도 :

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();