2017-02-20 12 views
3

アンドロイドAlertDialogに複数行の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(); 
関連する問題