Android TextView未显示我的所有文字

时间:2016-12-03 17:53:28

标签: java android android-studio textview

我正在制作一个疯狂的lib并且正在获取用户输入,然后删除输入控件并在TextView中显示文本结果。我还使用了stringbuilder和一个字符串的arrayLists。我尝试了使用stringbuilder和arraylists来将所有文本多种方式放入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" />

以下按钮代码将输入,然后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));
    }
}

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

2 个答案:

答案 0 :(得分: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());

答案 1 :(得分: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>