1.在onDestroy方法中,在程序回收前用输出流把文本框的内容存储起来
@Override
protected void onDestroy(){
super.onDestroy();
String inputText = edit.getText().toString();
save(inputText);
}
public void save(String inputText) {
FileOutputStream out = null;
BufferedWriter writer = null;
try{
out = openFileOutput("data", Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter( out ));
writer.write(inputText);
}catch(IOException e){
e.printStackTrace();
}finally{
try{
if(writer != null){
writer.close();
}
}catch (IOException e){
e.printStackTrace();
}
}
}
2.在onCreate方法中读出之前存储的字符
用TextUtils.isEmlty可以同时判断字符串是null还是“”“
private EditText edit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit = (EditText) findViewById(R.id.edit);
String inputText = load();
if (!TextUtils.isEmpty(inputText)) {
edit.setText(inputText);
edit.setSelection(inputText.length());//光标移动末端
Toast.makeText(this, "Restoring succeeded", Toast.LENGTH_SHORT).show();
}
}
public String load() {
FileInputStream in = null;
BufferedReader reader = null;
StringBuilder content = new StringBuilder();
try{
in = openFileInput("date");
reader = new BufferedReader(new InputStreamReader(in));
String line = "";
while ( (line = reader.readLine()) != null ){
content.append(line);
}
}catch (IOException e){
e.printStackTrace();
}finally{
if (reader != null){
try {
reader.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
return content.toString();
}