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)

你需要调用setContentViewfindViewById

setContentView(R.layout.main); 
mEditText = (EditText) findViewById(R.id.editText1); 
+0

WOW IT WORKeed!谢谢! – user1248404 2012-03-17 21:05:38

+0

@ user1248404然后将答案标记为已接受。 – 2012-03-18 10:34:47