2013-02-24 69 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();