У меня есть следующая ошибка: android.os.Bundle android.content.Intent.getExtras () 'для ссылки на пустой объект - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть MainActivity со списком, и когда это происходит, определенное условие открывает диалоговое окно с предупреждением.

Проблема в том, что при открытии диалогового окна с предупреждением необходимо вывести данные переменной и поместить еев текстовом представлении, которое я имею в alertDialog, дело в том, что он выдает мне эту ошибку:

java.lang.NullPointerException: попытка вызвать виртуальный метод 'android.os.Bundle android.content.Intent.getExtras () 'для нулевой ссылки на объект

Код MainActivity, в котором я выполняю Intent:

 Intent intent = new Intent(MainActivity.this,ConfirmacionAlarma.class);                
 intent.putExtra("notificar",totales);  

И сразу после того, как я вызываю alertDialog

 new ConfirmacionAlarma(contexto);    

Код AlertDialog такой:

    public class ConfirmacionAlarma extends AppCompatActivity {


    public ConfirmacionAlarma(Context contexto)
    {

    final Dialog dialogo = new Dialog(contexto);
    dialogo.requestWindowFeature(Window.FEATURE_NO_TITLE);
    dialogo.setCancelable(false);
    dialogo.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
    dialogo.setContentView(R.layout.dialogo_alarma);


    final TextView notiAlarm = (TextView) dialogo.findViewById(R.id.notificacionAlarma);

    TextView descAlarm = (TextView) dialogo.findViewById(R.id.DescAlarma);
    TextView contAla = (TextView) dialogo.findViewById(R.id.ContadorAlarmas);
    EditText fechaAlar = (EditText) dialogo.findViewById(R.id.Fecha);
    ImageView camapana = (ImageView) dialogo.findViewById(R.id.image1);
    Button ConfirmarAviso = (Button) dialogo.findViewById(R.id.Aceptar);




    ConfirmarAviso.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            dialogo.dismiss();
        }
    });
    Bundle nuevoTotales = getIntent().getExtras();
    String nom = nuevoTotales.getString("notificar");
    notiAlarm.setText(nom);
    dialogo.show();


   }

Он говорит мне, что объект приносит значение Null, но я не понимаю, почему.

1 Ответ

1 голос
/ 24 сентября 2019

Вы пытаетесь получить данные из constructor из Activity.Вы должны получить данные в onCreate метод

@Override
protected void onCreate(Bundle savedInstanceState){
  String value;
  Intent intent=this.getIntent();
   if(intent != null){
   value = intent.getStringExtra("notificar");
   }
} 
...