如何将价值从一个活动转移到另一个活动

时间:2013-01-18 05:57:18

标签: android string android-intent null

我想通过使用intent将值从一个avtivity传递给另一个活动。我没有得到值im得到null ..我的logcat没有错误。任何帮助将不胜感激。提前致谢。

  

第一项活动

 Intent intent = new Intent(Nexttopic.this, Quesans.class);
        String name = getIntent().getStringExtra("name");
        intent.putExtra("TopicName", tname);
        intent.putExtra("Topicid", topicid);
        intent.putExtra("LevelName",TAG_LEVELNAME);
        intent.putExtra("Levelid",TAG_LEVELID);
        intent.putExtra("Groupid",TAG_GROUPID);
 startActivity(intent); 
  

第二项活动

    Intent i=getIntent();
    name=i.getStringExtra(tname);
    tid=i.getStringExtra(topicid);
    lid=i.getStringExtra(TAG_LEVELID);
    gid=i.getStringExtra(TAG_GROUPID);
    System.out.println("Result :"+name);
    System.out.println("Result :"+tid);
    System.out.println("Result :"+lid);
    System.out.println("Result :"+gid);

6 个答案:

答案 0 :(得分:2)

您需要在调用另一个活动时参考您设置的额外字段的名称。 所以改变这个:

Intent i=getIntent();
name=i.getStringExtra(tname);
tid=i.getStringExtra(topicid);
lid=i.getStringExtra(TAG_LEVELID);
gid=i.getStringExtra(TAG_GROUPID);
System.out.println("Result :"+name);
System.out.println("Result :"+tid);
System.out.println("Result :"+lid);
System.out.println("Result :"+gid);

到此:

Intent i=getIntent();
name=i.getStringExtra("TopicName");
tid=i.getStringExtra("Topicid");
lid=i.getStringExtra("Levelid");
gid=i.getStringExtra("Groupid");
System.out.println("Result :"+name);
System.out.println("Result :"+tid);
System.out.println("Result :"+lid);
System.out.println("Result :"+gid);
希望它有所帮助。

答案 1 :(得分:2)

你应该这样做

第二项活动

Intent i=getIntent();
name=i.getStringExtra("TopicName");

每当你得到第二个活动数据的结果时,按键访问不是值。

像:

  name=i.getStringExtra("TopicName");

更多参考this Link

答案 2 :(得分:1)

虽然从String name获得额外价值,但与传递putextra时相同。

传递@

Intent intent = new Intent(Nexttopic.this, Quesans.class);
        String name = getIntent().getStringExtra("name");
        intent.putExtra("TopicName", tname);
        intent.putExtra("Topicid", topicid);
        intent.putExtra("LevelName",TAG_LEVELNAME);
        intent.putExtra("Levelid",TAG_LEVELID);
        intent.putExtra("Groupid",TAG_GROUPID);
 startActivity(intent); 

获得@

     Intent i=getIntent();
     name=i.getStringExtra("TopicName");
     tid=i.getIntExtra("Topicid",0); 
     lid=i.getIntExtra("Levelid",0); 
     gid=i.getIntExtra("Groupid",0); 
     System.out.println("Result :"+name);
     System.out.println("Result :"+tid);
     System.out.println("Result :"+lid);
     System.out.println("Result :"+gid);
  

我假设tid,lid,gid是整数。

putExtras

getExtras()

答案 3 :(得分:0)

在你的第二个活动中...... 这样给出

在您的第一个活动中将tname和topicid以及其他字符串设为公开,并在第二个活动中使用它们,如下所示

第二项活动

Intent i=getIntent();
name=i.getStringExtra(Nexttopic.tname);
tid=i.getStringExtra(Nexttopic.topicid);

答案 4 :(得分:0)

第一项活动

 Intent i = new Intent(FirstActivity(),SecondActivity.class);
   i.putExtra("wid", wid);
   i.putExtra("rid", rid);
  startActivity(i);

第二项活动

Bundle b = getActivity().getIntent().getExtras();
    wid = b.getString("wid");
    rid = b.getString("rid");

答案 5 :(得分:0)

从子目标获取值时,您的String名称应与传递父目标的名称相同。您可以传递字符串值,也可以通过intent传递类列表。还有另一种从哈希映射中获取值的方法。只是谷歌吧。 https://stackoverflow.com/a/14393309/1697047是一种文章方式