如何将Edittext中的信息保存到android中的原始文件
我正在努力学习如何使用edittext保存对file.txt的更改。到目前为止,我的代码允许我打开文本文件,但在关闭它时,它不会保存所做的更改。文本文件正在被打开到另一个活动中,当方向发生变化时,如果最小化,文本文件将保存这些变化。我尝试了大量不同的解决方案,但我无法了解如何存储所做的更改如何将Edittext中的信息保存到android中的原始文件,android,android-activity,android-edittext,Android,Android Activity,Android Edittext,我正在努力学习如何使用edittext保存对file.txt的更改。到目前为止,我的代码允许我打开文本文件,但在关闭它时,它不会保存所做的更改。文本文件正在被打开到另一个活动中,当方向发生变化时,如果最小化,文本文件将保存这些变化。我尝试了大量不同的解决方案,但我无法了解如何存储所做的更改 public class Editor extends Activity { private String Text; private String Folder; private String toast;
public class Editor extends Activity {
private String Text;
private String Folder;
private String toast;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_editor);
Bundle extras = getIntent().getExtras();
this.Text = extras.getString ("txt");
this.Folder = extras.getString("s");
this.toast = (Folder + "/" + Text);
Toast.makeText(this, toast, Toast.LENGTH_SHORT).show();
File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard + "/NoteTaker/" + Folder + "/" + Text);
StringBuilder text = new StringBuilder();
try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;
while ((line = br.readLine()) != null) {
text.append(line);
text.append('\n');
}
}
catch (IOException e) {
}
TextView tv = (TextView)findViewById(R.id.editText1);
tv.setText(text);
getActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_editor, menu);
return true;
}
这可能是您正在寻找的:
public void onPause(){
super.onPause();
try{
OutputStreamWriter out=new OutputStreamWriter(openFileOutput(NOTES, 0));
out.write(editor.getText().toString());
out.close();
}
catch (Throwable t) {
Toast.makeText(this, "Exception: "+t.toString(), Toast.LENGTH_LONG).show();
}
}
您需要将NOTES变量更改为file_name.txt,并将编辑器更改为EditText名称。如果要执行读取操作,请使用
InputStream
或
如果要执行写入操作,请使用outputstream
以下是将编辑器更改为EditText时出现的错误。错误是无法对非静态线程进行静态引用。我尝试创建:EditText=edit;EditText是版面上的文本框,其中包含要保存到文件中的信息,除非您没有让用户输入自己的数据,否则您不会有EditText文本框。您可以将EditText定义为:
EditText myText=(EditText)findViewById(R.id.name_of_EditText_from_layout_xml)代码>天哪,谢谢。我已经看了几个小时,试图把它整理出来,它终于起作用了