Android AlertDialog多行EditText

Sam*_*age 7 android multiline android-edittext

有没有办法在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();
Run Code Online (Sandbox Code Playgroud)

我的对话框看起来像这样.在此输入图像描述

那我怎么解决这个问题呢 感谢致敬.

raf*_*007 7

尝试使用EditText的代码:

input.setSingleLine(false);  //add this
input.setLines(4);
input.setMaxLines(5);
input.setGravity(Gravity.LEFT | Gravity.TOP);
input.setHorizontalScrollBarEnabled(false); //this
Run Code Online (Sandbox Code Playgroud)

  • 使用 `Gravity.START` 可能更好 (2认同)

AGM*_*zim 5

使用输入类型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();
Run Code Online (Sandbox Code Playgroud)