Принудительное закрытие для notes.java (sharedpreferences) - PullRequest
1 голос
/ 18 марта 2012

Должен ли я объявить что-то в манифесте Android?Я пытаюсь сохранить ввод текста, который находится в 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): ИСКЛЮЧИТЕЛЬНОЕ ИСКЛЮЧЕНИЕ: главная 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): в android.app.ActivityThread.performLaunchActivity (ActivityThread.java:1821) 03-17 16: 54: 42.302: E / AndroidRuntime (14558): на android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:1842) 03-17 16: 54: 42.302: E / AndroidRuntime (14558): на android.app.ActivityThread.доступ $ 1500 (ActivityThread.java:132) 03-17 16: 54: 42.302: E / AndroidRuntime (14558): на android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1038) 03-17 16: 54: 42.302: E / AndroidRuntime (14558): на android.os.Handler.dispatchMessage (Handler.java:99) 03-17 16:54:42.302: E / AndroidRuntime (14558): на android.os.Looper.loop (Looper.java:150)

1 Ответ

1 голос
/ 18 марта 2012

Вам необходимо позвонить setContentView до findViewById:

setContentView(R.layout.main);
mEditText = (EditText) findViewById(R.id.editText1);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...