intent.putExtra不工作

时间:2013-11-19 11:23:37

标签: android android-intent android-activity

我需要在两个活动之间传递信息,但由于某种原因,信息不会被发送/接收。

LogCat不会给我任何错误。 dubugger清楚地显示某些被添加到intent(variabl:mExtras)中,但是很难准确地解释添加的内容。之后,它给了我“找不到来源”,并没有帮助我。

但首先要做的事情。我到目前为止做得对吗?

发送:

Intent intent = new Intent ( this, TaskListActivity.class );
intent.putExtra ( ProjectManager.ID, mId.toString () );
startActivity ( intent );

Recieving:

Intent intent = getIntent ();
mId = UUID.fromString ( intent.getStringExtra ( ProjectManager.ID ) );

5 个答案:

答案 0 :(得分:2)

意图后添加以下代码:

Bundle extras = intent.getExtras();
String exampleString = extras.getString(ProjectManager.ID);

答案 1 :(得分:1)

什么是ProjectManager.ID ?,您应该在收到来自putExtra的数据时传递相同的唯一key,即使接收数据的方式有误,请查看以下代码:

发送:

Intent intent = new Intent ( this, TaskListActivity.class );
intent.putExtra (ProjectManager.ID, mId.toString () );
startActivity ( intent );

Recieving:

Bundle extras = intent.getExtras();
    if(extras!=null){
  String _Str = extras.getString(ProjectManager.ID);
}

答案 2 :(得分:0)

尝试使用此功能:

Bundle extras = getIntent().getExtras(); 
String id;

if (extras != null) {
    id= extras.getString(key);

}

答案 3 :(得分:0)

在FirstActivity.java中编写这些代码。

 Intent i = new Intent(FirstActivity.this,SecondActivity.class);
 i.putExtra("KEY",value);
 startActivity(i);

在SecondActivity.java中:

Bundle extras=getIntent().getExtras();
String name=extras.getString("key"); //if data you are sending is String.
int i=extras.getInt("key"); //if data you are sending is integer.

答案 4 :(得分:0)

要检索新活动中的额外内容:

String valueOfExtra;
Intent i = getIntent();
//check first
if(i.hasExtra("extra1")){
  valueOfExtra = i.getStringExtra("extra1");
}