@mrenergy

Краш приложения с setOnClickListener?

Делаю две кнопки, для загрузки сохраненного текста и его сохранения. в OnCreate:

etText = (EditText)findViewById(R.id.etText); //поле для ввода
    btnSave = (Button)findViewById(R.id.btnSave); //кнопка сохраненияя
    btnSave.setOnClickListener(this);
    btnLoad = (Button)findViewById(R.id.btnLoad); //кнопка загрузки
    btnLoad.setOnClickListener(this);

Дальше

public void onClick(View v){
   switch (v.getId()){
       case R.id.btnSave:
           saveText();
           break;
       case R.id.btnLoad:
           loadText();
           break;
       default:
           break;
   }
}


private void saveText() {
    sPref = getPreferences(MODE_PRIVATE);
    SharedPreferences.Editor ed = sPref.edit();
    ed.putString(SAVED_TEXT, etText.getText().toString());
    ed.commit();
    Toast.makeText(MainActivity.this, "Text saved", Toast.LENGTH_SHORT).show();
}

private void loadText() {
    sPref = getPreferences(MODE_PRIVATE);
    String savedText = sPref.getString(SAVED_TEXT,"");
    etText.setText(savedText);
    Toast.makeText(MainActivity.this, "Text loaded", Toast.LENGTH_SHORT).show();
}
В итоге приложение крашится с ошибкой Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.Button.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at <имя пакета>.MainActivity.onCreate(MainActivity.java:104)

104 строка: btnSave.setOnClickListener(this);
  • Вопрос задан
  • 676 просмотров
Пригласить эксперта
Ответы на вопрос 1
@kapitalistka
Вероятнее всего, в разметке не существует элемента с идентификатором btnSave
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы