Android警报对话框多行编辑文本

wztqucjr  于 2023-01-28  发布在  Android
关注(0)|答案(7)|浏览(171)

有没有办法在Android中的AlertDialog中创建多行EditText。我设置了setLines,它显示了几行更大的EditText。但当我键入时,它不会转到下一行,仍然在**同一行中键入 * a。以下是我的代码。

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

对话框如下所示。

那我该怎么解决这个问题呢谢谢你。

iovurdzv

iovurdzv1#

请为您的EditText尝试以下代码:

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

kmynzznz2#

使用输入类型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();
4urapxun

4urapxun3#

这对我很有效。您可以在运行时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" />
wnrlj8wa

wnrlj8wa4#

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

7tofc5zh5#

在XML中设置属性android:inputType="textMultiLine"
如果它不工作,你必须实现TextWatcher和手动断行自己.

laik7k3q

laik7k3q6#

包含在DialogFragment中的Kotlin版本:

import android.app.Dialog
import android.os.Bundle
import android.text.InputType
import android.view.Gravity
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.widget.AppCompatEditText
import androidx.fragment.app.DialogFragment

class MultilineEditDialog : DialogFragment() {

    override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
        val input = AppCompatEditText(requireContext()).apply {
            inputType = InputType.TYPE_TEXT_FLAG_MULTI_LINE
            isSingleLine = false
            setLines(3)
            maxLines = 3
            gravity = Gravity.START and Gravity.TOP
            hint = "Hint"
        }
        return AlertDialog.Builder(requireContext()).apply {
            setTitle("Title")
            setView(input)
            setPositiveButton(android.R.string.ok) { _, _ ->
                // TODO take an action
            }
            setNegativeButton(android.R.string.cancel, null)
        }.create()
    }
}
jpfvwuh4

jpfvwuh47#

input.setSingleLine(false);

我将使您的编辑文本增加根据数据

相关问题