我必须在 android list 中声明一些东西吗?即使 Activity 被销毁,我也试图保存 notes.java 中的文本输入。所以我使用了 SharedPreferences。 “editText1”是 notes.xml 中的文本输入当我运行该应用程序时它会强制关闭这是 notes.java:
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): FATAL EXCEPTION: main 03-17 16:54:42.302: E/AndroidRuntime(14558): java.lang.RuntimeException: Unable to start activity 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): at android.os.Looper.loop(Looper.java:150)
最佳答案
你需要在findViewById
之前调用setContentView
:
setContentView(R.layout.main);
mEditText = (EditText) findViewById(R.id.editText1);
关于java - 强制关闭 notes.java (sharedpreferences),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9753674/