活动变量传递不起作用

时间:2014-05-11 01:17:16

标签: android android-intent

我正在尝试传递变量" 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"

1 个答案:

答案 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");
}