我正在尝试传递变量" name"这是一个从一个活动到另一个活动的字符串但由于某种原因,当我从意图中得到它时,它是null,意图部分的代码在下面,从List_Activity传递到OpenList活动
List_Activity.class
@Override
protected void onListItemClick(ListView l, View v, int pos, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, pos, id);
Intent intent = new Intent(this, OpenList.class);
intent.putExtra("name", ListNames[pos]);
System.out.println("Passing " + ListNames[pos] + " as listname");
startActivity(new Intent(this, OpenList.class));
}
OpenList.class
//gets list name
Bundle extras = getIntent().getExtras();
if (extras != null) {
name = extras.getString("name");
System.out.println(name+ " has been passed as the name");
}else{
System.out.println("Return is null");
}
它总是返回" return为null"
答案 0 :(得分:2)
试试这个..
更改此
@Override
protected void onListItemClick(ListView l, View v, int pos, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, pos, id);
Intent intent = new Intent(this, OpenList.class);
intent.putExtra("name", ListNames[pos]);
System.out.println("Passing " + ListNames[pos] + " as listname");
startActivity(new Intent(this, OpenList.class)); // correction here
}
到
@Override
protected void onListItemClick(ListView l, View v, int pos, long id) {
// TODO Auto-generated method stub
super.onListItemClick(l, v, pos, id);
Intent intent = new Intent(this, OpenList.class);
intent.putExtra("name", ListNames[pos]);
System.out.println("Passing " + ListNames[pos] + " as listname");
startActivity(intent); // correction here
}
表示此startActivity(new Intent(this, OpenList.class));
到startActivity(intent);
然后你没有发送Bundle
所以得到如下所示
Intent intent = getIntent();
if (intent != null) {
name = intent.getStringExtra("name");
System.out.println(name+ " has been passed as the name");
}else{
System.out.println("Return is null");
}