出于某种原因,我无法从我的意图中检索我的捆绑附加功能。我正在添加我的额外内容以传递给我的新活动:
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);
}
查看我的LOG我可以看到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,我无法弄清楚原因。
答案 0 :(得分:3)
那里有印刷错误
尝试从
更改此行String breweryID = extras.getString("brewreyID");
到
String breweryID = extras.getString("breweryID");
答案 1 :(得分: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);
这样: 如果你打错了,你的代码就不会编译,比跟踪错误要好得多,它会让它更容易和维护。
答案 2 :(得分:0)
Intent intent = getIntent();
String breweryID = intent.getStringExtra("brewreyID");