1

我想通过使用意图将一个 avtivity 的值传递给另一个 Activity。我没有得到我得到的值。我的 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);
4

6 回答 6

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);

希望能帮助到你。

于 2013-01-18T05:59:34.800 回答
2

你应该这样做

第二个活动

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

每当您在第二个活动数据中获得结果时,按键访问而不是值。

像:

  name=i.getStringExtra("TopicName");

有关更多信息,请参阅此链接

于 2013-01-18T06:04:13.787 回答
1

从 extra 中获取价值时,您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

获取附加()

于 2013-01-18T06:05:52.010 回答
0

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

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

第二个活动

Intent i=getIntent();
name=i.getStringExtra(Nexttopic.tname);
tid=i.getStringExtra(Nexttopic.topicid);
于 2013-01-18T06:05:21.477 回答
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");
于 2013-01-18T06:07:59.237 回答
0

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

于 2013-01-18T06:19:17.270 回答