用户输入太长,无法处理alertdialog

问题描述:

有没有办法处理警报对话框中长时间的用户输入?我有一个小小的提醒对话框,需要几个输入,并且每当字符串输入太长时,其他输入和文本浏览都会被挤掉。有没有办法将字符串输入放在不同的行上或包装其他文本框的方式?我直接从代码而不是XML创建alertdialog。用户输入太长,无法处理alertdialog

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

您可能希望将代码为您输入的文本字符的限制,其中,若超过上限,它改变线的nuumber。使用(%)模数来划分某一行中的字符数。

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

+0

是的,我在想,但问题是,即使是小到8个字符的字符串使其溢出 – user3155915

+0

您可以尝试在每个a,e,i,o,u,y或double之后加上( - )短划线如果单词不合适,则会显示'll'和'rr'等字母。除非字符串在特定行中没有元音,y,'rr'或'll',否则我们会遇到问题。它可能看起来像逻辑,逻辑,逻辑,\ nly等等(其中\ n表示行结束)。 –