Java 如何通过读取.txt来填充TextView并替换以前存在的.txt。?
我是android开发的新手,正在做一个项目,用.txt文件填充textview。对多个txt文件使用相同的文本视图。但问题是它在该文本视图中显示第一、第二、第三个所有文本。它没有清除前一个Java 如何通过读取.txt来填充TextView并替换以前存在的.txt。?,java,android,Java,Android,我是android开发的新手,正在做一个项目,用.txt文件填充textview。对多个txt文件使用相同的文本视图。但问题是它在该文本视图中显示第一、第二、第三个所有文本。它没有清除前一个 MenuModel menuModel = new MenuModel("Introduction", true, false, "Intro.txt"); headerList.add(menuModel); menuModel = new MenuModel("Tense", tr
MenuModel menuModel = new MenuModel("Introduction", true, false, "Intro.txt");
headerList.add(menuModel);
menuModel = new MenuModel("Tense", true, true, "");
headerList.add(menuModel);
List<MenuModel> childModelsList = new ArrayList<>();
MenuModel childModel = new MenuModel("About Tense ", false, false, "TENSE.txt");
childModelsList.add(childModel);
if (menuModel.hasChildren) {
childList.put(menuModel, childModelsList);
}
setFile将选择要打开的文本文档
String setFile = headerList.get(groupPosition).url;
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(getAssets().open(setFile)));
String mLine;
while ((mLine = reader.readLine()) != null) {
text.append(mLine);
text.append('\n');
}
} catch (IOException e) {
Toast.makeText(getApplicationContext(),"Error reading file!",Toast.LENGTH_LONG).show();
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
//log the exception
}
}
TextView txtView = findViewById(R.id.tvContent);
txtView.clearComposingText();
txtView.setMovementMethod(new ScrollingMovementMethod());
txtView.setText(text);
}
onBackPressed();
}
}
return false;
}
});
expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
if (childList.get(headerList.get(groupPosition)) != null) {
MenuModel model = childList.get(headerList.get(groupPosition)).get(childPosition);
if (model.url.length() > 0) {
String setFile = model.url;
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(getAssets().open(setFile)));
String mLine;
while ((mLine = reader.readLine()) != null) {
text.append(mLine);
text.append('\n');
}
} catch (IOException e) {
Toast.makeText(getApplicationContext(),"Error reading file!",Toast.LENGTH_LONG).show();
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
//log the exception
}
}
TextView txtView = findViewById(R.id.tvContent);
txtView.clearComposingText();
txtView.setMovementMethod(new ScrollingMovementMethod());
txtView.setText(text);
}
onBackPressed();
}
}
return false;
}
});
}
setFile将选择要打开的文本文档
String setFile = headerList.get(groupPosition).url;
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(getAssets().open(setFile)));
String mLine;
while ((mLine = reader.readLine()) != null) {
text.append(mLine);
text.append('\n');
}
} catch (IOException e) {
Toast.makeText(getApplicationContext(),"Error reading file!",Toast.LENGTH_LONG).show();
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
//log the exception
}
}
TextView txtView = findViewById(R.id.tvContent);
txtView.clearComposingText();
txtView.setMovementMethod(new ScrollingMovementMethod());
txtView.setText(text);
}
onBackPressed();
}
}
return false;
}
});
expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() {
@Override
public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
if (childList.get(headerList.get(groupPosition)) != null) {
MenuModel model = childList.get(headerList.get(groupPosition)).get(childPosition);
if (model.url.length() > 0) {
String setFile = model.url;
BufferedReader reader = null;
try {
reader = new BufferedReader(
new InputStreamReader(getAssets().open(setFile)));
String mLine;
while ((mLine = reader.readLine()) != null) {
text.append(mLine);
text.append('\n');
}
} catch (IOException e) {
Toast.makeText(getApplicationContext(),"Error reading file!",Toast.LENGTH_LONG).show();
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
//log the exception
}
}
TextView txtView = findViewById(R.id.tvContent);
txtView.clearComposingText();
txtView.setMovementMethod(new ScrollingMovementMethod());
txtView.setText(text);
}
onBackPressed();
}
}
return false;
}
});
}
用于存储文件行的变量
text
显然是StringBuilder
对象,不是吗从文件中读取每一行后,您可以使用它来追加每一行,读取完成后,您可以将
TextView
的文本设置为StringBuilder
的文本但在开始阅读这些行并将它们附加到
StringBuilder
之前,必须使用
text = new StringBuilder();
或
因此,在
while
循环之前放置上面的1行。您的代码有什么错误?