Android 在文本视图中显示10行之后的10行
我在android studio中有一个20行文本的文本视图 我想在文本视图中先显示0-10行 然后单击设置按钮,首先隐藏10行,然后在textview中显示第二个10行。 这个工作对我来说,但我想隐藏后显示第二个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
一个简单的解决方案是将所有需要的文本添加到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();
}