0

我目前正在构建一个 Book-App(有点)。所以有很多字符串,用户可以选择他想从哪一行开始阅读。例如,第一章的字符串数组中有 200 个字符串。用户想从第 20 行开始阅读(因为他之前已经阅读了这些行)。如何显示 20-200 的所有字符串?我有:

    Resources res = getResources();
    String[] Book= res.getStringArray(R.array.ChapterOne);
    TextView ChapterOne= (TextView) findViewById(R.id.Text);
    SuraAlFateha.setText(Book[20]);

但这只是显示第 20 行。但我希望它显示从 20 (20-200) 开始的所有行。我怎样才能做到这一点?谢谢你。

4

2 回答 2

1

设置文本时,您需要一次设置所有文本,例如:

String resultString = '';

for ( int i = 20; i < Book.length; i++ )
    resultString = resultString + "\n" + Book[i];

SuraAlFateha.setText( resultString.substring( 1 ) );

或类似的东西。

但是,您应该在开始附加字符串之前计算您需要多少空间并保留它,否则您的运行时和内存使用量可能会变得非常高。

于 2012-04-07T16:30:14.317 回答
1

Book[20] 只会为您提供数组的第 20 个元素,如果您希望获取 20 到末尾的文本,则需要将元素范围连接成一个字符串。

您可以使用文本数组实用程序来简化此操作。

String joinedLines = TextUtils.join("\n", java.utils.Arrays.copyOfRange(Book, 20, Book.length));
SuraAlFateha.setText(joinedLines);
于 2012-04-07T16:38:17.367 回答