用户输入太长,警报对话框无法处理

Posted

技术标签:

【中文标题】用户输入太长,警报对话框无法处理【英文标题】:User input too long for alertdialog to handle 【发布时间】:2014-07-07 01:08:07 【问题描述】:

有没有办法处理警报对话框中的长用户输入?我有一个小的警报对话框,需要一些输入,每当字符串输入太长时,其他输入和文本视图都会被压扁。有没有办法将字符串输入放在不同的行或包装其他文本字段的方法?我直接从代码而不是 XML 创建警报对话框。

    LinearLayout layout = new LinearLayout(this);
    EditText weight = new EditText(this);
    EditText mark = new EditText(this);
    TextView marktext = new TextView(this);
    marktext.setText("Mark");
    TextView weighttext = new TextView(this);
    weighttext.setText("Weight");
    mark.setInputType(InputType.TYPE_CLASS_NUMBER);
    weight.setInputType(InputType.TYPE_CLASS_NUMBER);

    //Assignment name input
    EditText workType = new EditText(this);
    workType.setInputType(InputType.TYPE_CLASS_TEXT);
    TextView workTypeText = new TextView(this);
    workTypeText.setText("Name of the work: ");

    weight.setId(99);
    mark.setId(100);
    workType.setId(9999);

    /*Spinner addworkspinner = new Spinner(this);
    ArrayAdapter<String> addworkadapter = new ArrayAdapter<String>(
            this, android.R.layout.simple_spinner_item, ClassManager.possiblework);
    addworkspinner.setAdapter(addworkadapter); */
    layout.addView(workTypeText);
    layout.addView(workType);
    layout.addView(marktext);
    layout.addView(mark);
    layout.addView(weighttext);
    layout.addView(weight);

    AlertDialog.Builder addwork = new AlertDialog.Builder(this);
    addwork.setTitle("Add a piece of work");
    addwork.setView(layout);

【问题讨论】:

【参考方案1】:

您可能想为输入的文本字符设置一个限制,如果超出限制,它会更改行数。使用 (%) 模数除以某一行的字符数。

此信息有关 Android: Vertical alignment for multi line EditText (Text area) 也可能有助于确定您需要在 EditText 中更改的内容。

【讨论】:

是的,我在想,但问题是即使是小到 8 个字符的字符串也会溢出 如果单词不合适,您可以尝试在每个 a 、e 、i 、o 、u 、y 或双字母(例如 'll' 和 'rr' )后面加上 (-) 破折号。除非字符串在某一行中没有元音、y、'rr' 或 'll',否则我们就会遇到问题。它可能看起来像 logi-\ncally、lo-\ngically、logical-\nly 等等(其中 \n 表示行尾)。

以上是关于用户输入太长,警报对话框无法处理的主要内容,如果未能解决你的问题,请参考以下文章

我无法将用户输入的所有值存储在数组中。在窗口警报中,仅显示第一个数组值

如何快速从用户输入中运行警报

用于文本输入的 Android Studio 警报对话框块空间

webdriver处理无法定位元素的弹窗

UIAlertView 输入 Apple ID 和密码 IAP

当用户输入的时间低于预期时间时,如何在 swiftUI 中显示警报消息?