notes.java的强制关闭(sharedpreferences)
我必须在android manifest中声明一些东西吗?我试图在notes.java中保存文本输入,即使在活动被破坏时也是如此。所以我使用了SharedPreferences。 “editText1”是notes.xml文本输入当我运行程序的时候,强制关闭这里的notes.java:notes.java的强制关闭(sharedpreferences)
public class notes extends Activity {
public static final String PREFS_NAME = "MyPrefsFile";
private EditText mEditText;
@Override
protected void onCreate(Bundle state){
super.onCreate(state);
// Restore preferences
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
String savedText = settings.getString("text", "");
mEditText = (EditText) findViewById(R.id.editText1);
mEditText.setText(savedText);
}
@Override
protected void onStop(){
super.onStop();
// We need an Editor object to make preference changes.
// All objects are from android.context.Context
SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("text", mEditText.getText().toString());
// Commit the edits!
editor.commit();
}
}
这里的logcat的它强制关闭时:
03-17 16 :54:42.302:E/AndroidRuntime(14558):致命例外:main 03-17 16:54:42.302:E/AndroidRuntime(14558): java.lang.RuntimeException:无法启动活动 ComponentInfo {izzy.n /izzy.n.notes}:java.lang.NullPointerException 03-17 16:54:42.302:E/AndroidRuntime(14558):at android.app.ActivityThread。 performLaunchActivity(ActivityThread.java:1821) 03-17 16:54:42.302:E/AndroidRuntime(14558):at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1842) 03-17 16:54:42.302 :E/AndroidRuntime(14558):at android.app.ActivityThread.access $ 1500(ActivityThread.java:132)03-17 16:54:42.302:E/AndroidRuntime(14558):at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1038) 03-17 16:54:42.302:E/AndroidRuntime(14558):at android.os.Handler.dispatchMessage(Handler.java:99)03-17 16:54 :42.302:E/AndroidRuntime(14558):在 android.os.Looper.loop(Looper.java:150)
你需要调用setContentView
前findViewById
:
setContentView(R.layout.main);
mEditText = (EditText) findViewById(R.id.editText1);
WOW IT WORKeed!谢谢! – user1248404 2012-03-17 21:05:38
@ user1248404然后将答案标记为已接受。 – 2012-03-18 10:34:47