用数据流来进行存储
为何程序运行老报空指针错误,模拟器提示强制关闭。
package android.test;import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.TextView;public class Activity01 extends Activity {
private boolean musicOnOrOff = false;
private TextView tv = null; @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main); tv = (TextView) findViewById(R.id.tv);
load();
if (musicOnOrOff) {
tv.setText("音乐自动播放: " + "开");
//musicOnOrOff = true;
} else {
tv.setText("音乐自动播放: " + "关");
}
} @Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (keyCode) {
case KeyEvent.KEYCODE_DPAD_UP:
tv.setText("音乐自动播放: " + "开");
musicOnOrOff = true;
break;
case KeyEvent.KEYCODE_DPAD_DOWN:
tv.setText("音乐自动播放: " + "关");
musicOnOrOff = false;
break;
}
return super.onKeyDown(keyCode, event);
} @Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
save();
this.finish();
return true;
}
return super.onKeyUp(keyCode, event);
} // 装载,读取数据
public void load() {
Properties properties = new Properties();
try {
FileInputStream fis = this.openFileInput("mm.cfg");
// 读取文件内容
properties.load(fis);
} catch (FileNotFoundException e) {
return;
} catch (IOException e) {
return;
}
musicOnOrOff = Boolean.valueOf(properties.getProperty("music")
.toString());
} // 保存数据
public boolean save() {
Properties properties = new Properties();
properties.put("music", String.valueOf(musicOnOrOff));
try {
FileOutputStream fos = this.openFileOutput("mm.cfg",
Context.MODE_WORLD_WRITEABLE);
// 打包好数据写入文件中
properties.store(fos, "");
} catch (FileNotFoundException e) {
return false;
} catch (IOException e) {
return false;
}
return true;
}
}