Olá boa tarde alguem pode me orientar por favor , estou tendo o seguinte erro :
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method ‘void android.widget.EditText.setText(java.lang.CharSequence)’ on a null object reference
at com.novoandroid.minhasanotaes.MainActivity.onCreate(MainActivity.java:51)
o erro está ocorrendo aqui :
String anotacao = preferencias.recuperarAnotacao();
if(!anotacao.equals(""))
editTextAnotacao.setText(anotacao);
}
mas não estou sabendo como resolver todo o meu código encontra-se aqui
***** Main Activity *******
package com.novoandroid.minhasanotaes;
import android.os.Bundle;
import com.google.android.material.floatingactionbutton.FloatingActionButton;
import com.google.android.material.snackbar.Snackbar;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.EditText;
public class MainActivity extends AppCompatActivity {
private AnotacoesPreferencia preferencias;
private EditText editTextAnotacao;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
preferencias = new AnotacoesPreferencia(getApplicationContext());
FloatingActionButton fab = findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String textoRecuperado = findViewById(R.id.editText).toString();
if(textoRecuperado.equals("")){
Snackbar.make(view, "Nenhum texto inserido", Snackbar.LENGTH_LONG).show();
}else{
preferencias.salvarAnotacao(textoRecuperado);
Snackbar.make(view, "Anotação Salva com sucesso", Snackbar.LENGTH_LONG).show();
}
}
});
// Recuperar Anotação
String anotacao = preferencias.recuperarAnotacao();
if(!anotacao.equals(""))
editTextAnotacao.setText(anotacao);
}
}
********Anotacao Preferencia *********
package com.novoandroid.minhasanotaes;
import android.content.Context;
import android.content.SharedPreferences;
public class AnotacoesPreferencia {
private final SharedPreferences.Editor editor;
private Context context;
private SharedPreferences preferences;
private final String NOME_ARQUIVO = "anotacao.preferencia";
private final String CHAVE_NOME = "nome";
public AnotacoesPreferencia(Context c){
this.context = c ;
preferences = context.getSharedPreferences(NOME_ARQUIVO,0);
editor = preferences.edit();
}
public void salvarAnotacao(String anotacao){
editor.putString(CHAVE_NOME,anotacao);
editor.commit();
}
public String recuperarAnotacao(){
return preferences.getString(CHAVE_NOME,"");
}
}
desde já agradeço a ajuda
ao abrir e fechar o aplicativo quando não tem nada salvo a partir do momento que eu salvo e fecho o app e vou abrir novamente já apresenta o erro acima.