Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在文本视图中显示10行之后的10行_Android_Textview - Fatal编程技术网

Android 在文本视图中显示10行之后的10行

Android 在文本视图中显示10行之后的10行,android,textview,Android,Textview,我在android studio中有一个20行文本的文本视图 我想在文本视图中先显示0-10行 然后单击设置按钮,首先隐藏10行,然后在textview中显示第二个10行。 这个工作对我来说,但我想隐藏后显示第二个10行的前10行 你能帮我吗? 我的代码 一个简单的解决方案是将所有需要的文本添加到ArrayList中,然后最初将前十行加载到StringBuilder中,并将TextView的值设置为StringBuilder。单击按钮时,从ArrayList向StringBuilder再添加10

我在android studio中有一个20行文本的文本视图 我想在文本视图中先显示0-10行 然后单击设置按钮,首先隐藏10行,然后在textview中显示第二个10行。 这个工作对我来说,但我想隐藏后显示第二个10行的前10行

你能帮我吗? 我的代码


一个简单的解决方案是将所有需要的文本添加到ArrayList中,然后最初将前十行加载到StringBuilder中,并将TextView的值设置为StringBuilder。单击按钮时,从ArrayList向StringBuilder再添加10行,然后再次将TextView的值设置为StringBuilder。您需要在TextView上启用滚动,因为它将很快耗尽垂直空间来显示10行。

您可以尝试此操作-需要添加一些类变量。初始化后,读取时的lineindex保持设置!您只需使用param
onClick
按钮的
调用
readNextLines()
方法即可。但是首先是
init()
,最后是
close()

private BufferedReader br;
私有文件输入流fin;
私有最终字符串filePath=“…”;
私有布尔初始化文件(){
布尔值isCreated=false;
试一试{
fin=新文件输入流(文件路径);
br=新的BufferedReader(新的InputStreamReader(fin));
isCreated=true;
}catch(filenotfounde异常){
System.out.println(“您的消息”);
}捕获(IOE异常){
System.out.println(“您的消息”);
}
创建返回;
}
//不要忘记空检查!这是简短的版本
//指针保持其位置并读取下一个X行。
专用字符串readNextLines(int lineCount){
整数计数=0;
StringBuilder sb=新的StringBuilder();
while(count

可能会添加一些安全性和空检查。也许这需要一些变通办法——这是一个快速的解决方案(我没有时间,sry),你目前做了什么?发布一些你尝试过的代码。没有家庭作业服务。也许你应该尝试使用两个文本视图?不,我想使用1000000 chracter的长文本视图
 btn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                try {
                    InputStream is = getAssets().open("1.xml");
                    int size = is.available();
                    byte[] buffer = new byte[size];
                    is.read(buffer);
                    is.close();
                    String text = new String(buffer);
                    tv1.setText(text);
                } catch (IOException e) {
                    e.printStackTrace();
                    tv1.setText("");
                }
                tv1.setLines(10);
            }
        });
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                 i = i + 10;
                 tv1.setLines(i);
            }
        });
private BufferedReader br;
private FileInputStream fin;
private final String filePath = "...";

private boolean initFile() {
    boolean isCreated = false;
    try {
        fin = new FileInputStream(filePath);
        br = new BufferedReader(new InputStreamReader(fin));
        isCreated = true; 
    } catch (FileNotFoundException e) {
        System.out.println("Your Message");
    } catch (IOException e) {
        System.out.println("Your Message");
    }

    return isCreated;
}

// Don´t forget null check! It´s short version
// pointer keeping it´s position and reading next X lines.
private String readNextLines(int lineCount) {
    int count = 0;
    StringBuilder sb = new StringBuilder();

    while( count < lineCount && this.br.hasNext()) {
        sb.append(br.readLine() + "\n");
        count++;
    }

    return sb.build().toString();
}

private void closeFile() {
    this.br.close();
    this.fin.close();
}