我遇到了一些问题。
在“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);
答案 0 :(得分:1)
如果你想得到额外的东西,这就是我要做的事情:
Intent i = getIntent();
String arrayWatt = i.getStringExtra("valoresWatt");
String arrayHorario = i.getStringExtra("valoresHorario");
答案 1 :(得分:1)
您列出的用于获取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");
}
// ...
}
答案 2 :(得分:1)
在原始代码中,您说第一行返回null:
Bundle extras = getIntent().getExtras(); // --> this is returning NULL
从Android docs for Intent开始,如果尚未添加额外内容,则getExtras()方法似乎将返回null。
在这种情况下,您可能必须通过直接调用Intent对象上的.putExtra(key,value)来添加您的String附加内容,而不是在其尚未存在的附加地图上添加。
答案 3 :(得分:0)
对于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);
试
i.putStringArrayListExtra("valoresWatt", watt);
i.putStringArrayListExtra("valoresHorario", hora);
如果它是字符串的arraylist。