2013-02-24 70 views
0

我一直对这个节目作为分配和这个问题我一直在努力回答和我来说,这应该只是:的Android编程onCreate方法

Bundle data = getIntent().getExtras(); 

但它是不正确! 下面的代码和下面的问题是什么导致我这个答案。

import android.app.Activity; 
import android.os.Bundle; 

public class HelloWorld extends Activity { 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    } 
    } 

我需要获取该Intent对象,这个类将收到来自HelloWorldActivity。 因此,

声明一个类型为Bundle命名数据的新变量,并为其分配从此类调用getIntent().getExtras()的值。

所以我搜索了我不明白的答案。

我又回答:

Bundle data = getIntent().getExtras(); 

,这是不正确。有人能向我解释我错过了什么吗? 谢谢

+0

对不起,但我真的不明白你在问什么。 – Squonk 2013-02-24 00:21:31

回答

1

你假设传入Intent启动你的活动在其扩展数据中包含一个Bundle。也就是说,HelloWorldActivity必须完成以下工作:

意图sendIntent = newIntent(this,HelloWorld.class); //或将意图指向右侧的其他方式活动 Bundle sendBundle = new Bundle(); //将数据放入Bundle的一些示例 //注意,键应该使用包前缀。 sendBundle.putString(“com.example.android.myapp.HELLOWORLD_KEY”,“Hello,World”); //等 sendIntent.putExtras(sendBundle); startActivity(sendIntent);

如果你这样做,那么在HelloWorld的你可以打电话

捆数据= getIntent()getExtras()。

这将返回您放入sendBundle中的内容。

我通常会将动作添加到即将离开的Intent中,即使我使用明确的Intent。这允许我在其他地方检查传入的Intent以进行正确的操作。在我尝试使用Intent之前,我还测试了Intent中的扩展数据不是空的。

最后,请记住该语句

包数据= getIntent()getExtras();

应该在onCreate();