Получение исключения нулевого указателя в общих настройках Android - PullRequest
0 голосов
/ 16 сентября 2011

Мой код примерно такой

// Для сохранения данных формы

private final OnClickListener mFinishListener = new OnClickListener() {
        public void onClick(View v) {

        SharedPreferences.Editor editor = getPreferences(0).edit();

        editor.putString("txtName",mName.getText().toString());

        servState = 1;
        editor.putInt("AppState", servState);
        editor.commit();

        }

// Получить данные моей формы

protected void onResume() {
        super.onResume();

        SharedPreferences prefs = getPreferences(0);
        int restoreServState = prefs.getInt("AppState", 0);


        if(restoreServState == 0){
            setContentView(R.layout.main);
            Button button = (Button)findViewById(R.id.btnFinish);
            button.setOnClickListener(mFinishListener);
        }
        else {

            setContentView(R.layout.pwd);
            int selectionStart = prefs.getInt("selection-start", -1);
            int selectionEnd = prefs.getInt("selection-end", -1);
            if (selectionStart != -1 && selectionEnd != -1) {
                //mSaved.setSelection(selectionStart, selectionEnd);
            }
        }

    }

Я получаю исключение NullPointerException при сохранении данных в событии OnClick в приведенном выше коде. Точная линия у меня есть проблема

    editor.putString("txtName",mName.getText().toString());

Пожалуйста, подскажите, что здесь не так? Нужно ли что-либо менять в файле манифеста, чтобы использовать общие настройки?

1 Ответ

0 голосов
/ 16 сентября 2011

у вас может быть две проблемы для получения этой ошибки

На самом деле, когда начинается действие, вызывается onCreate () first

onResume () вызывается после создания действия, поэтому ваш контроль может не получить ресурс

1)so had setContentView(R.layout.main) in onCreate?
2)had you initialize EditText mName=(EditText) findViewById(R.id.label);?

проверь это, может работает

...