我想通过使用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);
答案 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是整数。
答案 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是一种文章方式