2013-12-20 74 views
1

由於某種原因,我無法從我的意圖中檢索我的捆綁附加功能。我加入我的演員要傳遞給我的新的活動有:Android意圖總是爲空

public void getMap(View view){ 

     Intent i = new Intent(this, BreweryYourTopBeers.class); 
     Log.d("map" , e.beerBreweryId); 
     i.putExtra("breweryID", e.beerBreweryId); 
     i.setClass(this, BreweryMap.class); 

     startActivity(i); 


    } 

看我的日誌,我可以看到e.beerBreweryId事實上確實有一個值它是捆綁和發送之前。

但是當我到下一堂課時,我不能從我的意圖中檢索額外的東西。我試圖檢索值:

public class BreweryMap extends ActionbarMenu { 

    BeerData e; 
    String beerID; 
    GoogleMap map; 

    //get beer details from bundle 
    protected void onCreate(Bundle savedInstanceState) { 

     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_brewerymap); 

     //get brewery data 

     //get beer data 
     Intent intent = getIntent(); 
     Bundle extras = intent.getExtras(); 
     String breweryID = extras.getString("brewreyID"); 


     map = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)) 
       .getMap(); 



     //todo: get brewery latt and long and add marker 
     //construct url 
     String url = "http://api.brewerydb.com/v2/brewery/"+ breweryID +"?key=myKey&format=json&withLocations=y"; 

     Log.d("map", url); 
     //async task to get beer taste tag percents 
     new myAsyncTask(this,map).execute(url); 

} 

當我看着我的日誌在這裏breweryID總是NULL,我不知道爲什麼。

回答

3

你有印刷錯誤有

嘗試從

String breweryID = extras.getString("brewreyID"); 

改變這一行

String breweryID = extras.getString("breweryID"); 
+0

您是否想將底線改爲底線?如果是這樣,我搞砸了,我仍然沒有看到它...... – Mike

+0

你的拼寫錯誤,你輸入breweryID而不是breweryID –

+0

該死,我是閱讀障礙我直到你指出它纔看到。謝謝,有時候我只需要在代碼上加一些額外的眼睛。 – Mike

3

由於@Rick Royd ABAN說,你有你的代碼轉換E中的錯字& r在一個字符串中。

這就是爲什麼你永遠不應該直接使用字符串,而是做這樣的事情:

public static final String EXTRA_BREWERY_ID = "brewery_id"; 
i.putExtra(EXTRA_BREWERY_ID, e.beerBreweryId); 
String breweryID = extras.getString(EXTRA_BREWERY_ID); 

這樣: 如果你犯了一個錯字,你的代碼將無法編譯,辦法總比有跟蹤錯誤,並且使得重用它更容易和維護。

0
Intent intent = getIntent(); 
String breweryID = intent.getStringExtra("brewreyID"); 
+1

請解釋你的意思。 OP的問題是什麼?爲什麼這個工作? – HDave