我正在制作一个疯狂的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和内置模拟器。我觉得我的问题与其他类似的问题不同,我已经尝试了接受的修复和其他没有成功的东西。
答案 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)
您可以将TextView
与ScrollView
打包在一起,以便能够看到全文:
<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>