Связка дополнений, возвращающих ноль - PullRequest
0 голосов
/ 03 августа 2011

У меня проблемы.

В классе "A" у меня есть код:

Bundle extras = getIntent().getExtras();
    if ( extras == null ){
        Log.e("extras", "Extra NULL");
    }
    String arrayWatt = extras.getString("valoresWatt");
    String arrayHorario = extras.getString("valoresHorario");


Bundle extras = getIntent().getExtras();  --> this is returning NULL`

Этот метод генерирует исключение NUllPointerException.В чем здесь проблема?Синтаксис?

--- EDIT ---- Извините, я забыл этот код:
(Этот код из другого класса, запускающего действие)

 Intent i = new Intent();
        i.setClassName("org.me.android",
                    "org.me.android.GraphViewDemo");
        i.putExtra("valoresWatt", watt);
        i.putExtra("valoresHorario", hora);
        startActivity(i);

Ответы [ 4 ]

1 голос
/ 07 августа 2013

В исходном коде вы говорите, что эта первая строка возвращает нуль:

Bundle extras = getIntent().getExtras();  // --> this is returning NULL

Из документов Android для Intent кажется, что метод getExtras () вернетnull, если дополнительные функции еще не добавлены.

В этом случае вам, возможно, придется добавить дополнительные элементы String, вызвав .putExtra (key, value) непосредственно для объекта Intent, а не для его Map of extras,который еще не существует.

1 голос
/ 03 августа 2011

Если вы хотите получить дополнительные услуги, это то, что я бы сделал:

Intent i = getIntent();
String arrayWatt = i.getStringExtra("valoresWatt");
String arrayHorario = i.getStringExtra("valoresHorario");
1 голос
/ 03 августа 2011

Где указан код, указанный вами для получения Extras? Вы переопределяете метод onCreate? Если это так, обязательно наберите super.onCreate(bundleVariableName), прежде чем пытаться работать с Extras. Итак ...

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.myLayout);
    // ...
    Bundle data = getIntent().getExtras();
    if (data != null ) {
        // should actually verify that the key exists, so:
        // if (data.containsKey("valoresWatt")) {
        // ... do something with the value
        String watt = data.getString("valoresWatt");
        String horario = data.getString("valoresHorario");
    }
    // ...
}
0 голосов
/ 03 августа 2011

Для аварии NPE

Bundle extras = getIntent().getExtras();
if ( extras == null ){
    Log.e("extras", "Extra NULL");
} else {
   String arrayWatt = extras.getString("valoresWatt");
   String arrayHorario = extras.getString("valoresHorario");
}

Вместо

i.putExtra("valoresWatt", watt);
i.putExtra("valoresHorario", hora);

1007 * попробовать *

i.putStringArrayListExtra("valoresWatt", watt);
i.putStringArrayListExtra("valoresHorario", hora);

если это массив строк.

...