我有一个等式,它的结果显示在一个TextView中。然后我有另一个TextView,它的行为就像一个历史。此历史记录我想保存一个文件,该文件应重新加载后,应用程序将被杀死并重新启动。
我不明白的是,第二个TextView,也就是我要保存的视图,在启动应用程序后会显示一些奇怪的东西
这句话一遍又一遍地说。
android.widget.TextView{41852c0 VFED.VCL ..... ID32,316-419,351 #7f09000a app:id/tvHistory}我自己的代码:
final static String FILENAME = "marks.txt";
mNotenHistory=(TextView)findViewById(R.id.tVhistory);
mNotenHistory.setMovementMethod(new ScrollingMovementMethod());
private void loadTextfromFile()
{
File f = new File(getFilesDir(),FILENAME);
try {
BufferedReader br = new BufferedReader(new FileReader(f));
String line;
try {
while ((line = br.readLine()) != null)
{
mNotenHistory.setText(line+"\n"+mNotenHistory.getText());
}
br.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
@Override
public void onClick(View view)
{
[...]
mNotenHistory.setText(mNotenHistory.getText() + "\n" + string_note);
String noten_history_string = String.valueOf(mNotenHistory);
try {
FileOutputStream fo = openFileOutput(FILENAME, Context.MODE_APPEND);
fo.write(noten_history_string.getBytes());
fo.write("\n".getBytes());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}发布于 2013-07-01 06:05:32
下面是令人不快的一行:
String noten_history_string = String.valueOf(mNotenHistory);
看看Android文档中的这个定义:
public static String valueOf(Object value)在API级别1中添加了
将指定的对象转换为其字符串表示形式。如果对象为null,则返回字符串"null",否则使用toString()获取字符串表示。
TextView类从View类继承toString()。下面是它的定义:
在API级别1中添加了
public String toString ()
返回一个字符串,其中包含对此对象的简明、人类可读的说明。鼓励子类覆盖此方法,并提供考虑对象类型和数据的实现。默认实现相当于以下表达式:getClass().getName() + '@' + Integer.toHexString(hashCode())
所以这就是你的问题。String.valueOf(mNotenHistory) 不会在文本视图中显示文本。因此,您正在向文件中写入其他内容(特别是您提到的那一行)。要从TextView获取文本,请改用getText()方法。这条线应该是这样的:
String noten_history_string = mNotenHistory.getText();发布于 2013-07-01 23:51:33
快速恢复我想要完成的内容。
TextView A得到一个方程的结果,在每次新的计算后,这个结果都是清晰的。为了保存结果,这里有TextView B。在TextView B中,结果应该从下往上写,这样最新的结果就在上。同时,它应该将TextView的内容写入到文件中。
关闭/终止应用程序并重新打开后,TextView B将显示所有保存的数据。
重置按钮应清除文件的所有内容,使其为空。
https://stackoverflow.com/questions/17394129
复制相似问题