java - 强制关闭 notes.java (sharedpreferences)

标签 java android sharedpreferences

我必须在 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/

相关文章:

java - 无法让tomcat定义数据源

android - "Downloads"应用程序中显示的文件的文件类型注册失败

android - java.lang.NullPointerException : at android. widget.Editor.updateFloatingToolbarVisibility

java - E/运动识别管理器 : mSContextService causing app to crash on my android phone

java - 如何检查字符数组的元素是否为空?

java - GXT 3 : GridSelectionModel SelectionEvent/SelectionChangedEvent not firing

java - 使用 struts2 的 java web 应用程序 :Success. 但是

android - NDEF URI 负载中的非法字符

android - 共享偏好保存

java - 无法在 SharedPreferences 中保存值