2016-12-03 133 views
1

我正在制作一个疯狂的lib,并且获取用户输入,然后删除输入控件并在TextView中显示文本结果。我也使用了一个stringbuilder和一个字符串的arrayLists。我试着用stringbuilder和arraylist将所有文本放入textview中,但它只显示一半。Android TextView不显示我的所有文本

我的控制

<TextView 
     android:text="" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/word1_editText" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginLeft="26dp" 
     android:layout_marginStart="26dp" 
     android:visibility="invisible" 
     android:maxLength="1000" 
     android:maxLines="20" 
     android:scrollbars="vertical" 
     android:id="@+id/madlib1_textView" /> 

和下面的按钮的代码将alow用于输入和再经过19次它将删除按钮和显示文本

ArrayList<String> prompts = new ArrayList<>(); 
ArrayList<String> madLibText = new ArrayList<>(); 
ArrayList<String> finalMadLib = new ArrayList<>(); 
RelativeLayout layout; 
private int promptNum; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_madlib1); 
    layout = (RelativeLayout) findViewById(R.id.activity_madlib1); 
    promptNum = 0; 
    /* OTHER INIT STUFF */ 
} 

public void submitWords(View v) { 
    finalMadLib.add(madLibText.get(promptNum)); 
    EditText word1 = (EditText) findViewById(R.id.word1_editText); 
    finalMadLib.add(word1.getText().toString()); 
    word1.setText(""); 
    word1.setHint(prompts.get(promptNum)); 
    promptNum++; 
    if (promptNum == 18) { 
     StringBuilder temp = new StringBuilder(""); 

     TextView textView = (TextView)findViewById(R.id.madlib1_textView); 
     for(int i=0;i<19;i++){ 
      // temp.append(finalMadLib.get(i).toString()); 
      textView.append(finalMadLib.get(i).toString()); 
     } 
     textView.setVisibility(VISIBLE); 
     // textView.setText(temp.toString()); 
     textView.setId(promptNum); 
     textView.setTextSize(15); 
     layout.removeView(findViewById(R.id.word1_editText)); 
     layout.removeView(findViewById(R.id.submitwords_button)); 
    } 
} 

为什么只显示4总线和约10/19或20/48最后的文本/字符串的结果在TextView?我正在使用android studio,windows 10和内置模拟器。我觉得我的问题不同于其他类似的问题,我尝试了接受的修复和其他没有成功的东西。

+1

发布您的完整版式和屏幕截图。我们不能从描述中知道 –

回答

1

删除

android:maxLength="1000" 

因此,这将是这样的:

<TextView 
    android:text="" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_above="@+id/word1_editText" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" 
    android:layout_marginLeft="26dp" 
    android:layout_marginStart="26dp" 
    android:visibility="invisible" 
    android:maxLines="20" 
    android:scrollbars="vertical" 
    android:id="@+id/madlib1_textView" /> 

并添加这对你的活动的onCreate,使其滚动:

TextView txtMadlib = (TextView) findViewById(R.id.madlib1_textView); 
txtMadlib.setMovementMethod(new ScrollingMovementMethod()); 
+0

谢谢你这个工作 – mellis

0

你可以用你的TextViewScrollView能够看到全文:

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <TextView 
     android:id="@+id/device_info" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     tools:text="device info" /> 

</ScrollView> 
+0

它没有工作 – mellis