这是代码,按下返回键后没有回到MainActivity,程序直接崩溃了
public class SecondActivity extends Activity implements OnClickListener{
private EditText edit;
private Button button2;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.second_layout);
edit = (EditText) findViewById(R.id.edit);
button2 = (Button) findViewById(R.id.button2);
button2.setOnClickListener(this);
}
public void onClick(View v) {
switch(v.getId()) {
case R.id.button2:
finish();
}
}
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.write(inputText);
} catch(IOException e) {
e.printStackTrace();
} finally {
try {
if(writer != null) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
try {
out = openFileOutput("data", Context.MODE_PRIVATE);
out.write(inputText);//这里应该是out,writer没有初始化
} catch(IOException e) {
你这设计到好几个问题。
1>writer只是初始化的时候赋值为null,导致空指针异常。
2>如果想使用writer,就需要对out进行修饰。
3>out属于OutputStream,想要使用BufferedWriter进行修饰,就需要将out装化为writer。
修正部分如下
inputText是文字,假设使用UTF-8编码
try{
out = openFileOutput("data", Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(out, "utf-8"));
}
不是openFileOutput的问题,是你的writer根本就是个null啊,null有write方法么,你new 一个writer就行