Android getBooleanExtra()始终获取真值
我正在开发一个实现mapsView的应用程序。我有两个活动可以引导mapsView活动。活动A将导致mapsView活动,mapsView活动将导致活动B。我正在代码中实现putExtra和getBooleanExtra 这是我在活动A中的代码Android getBooleanExtra()始终获取真值,android,android-intent,Android,Android Intent,我正在开发一个实现mapsView的应用程序。我有两个活动可以引导mapsView活动。活动A将导致mapsView活动,mapsView活动将导致活动B。我正在代码中实现putExtra和getBooleanExtra 这是我在活动A中的代码 case R.id.buttonMaps: Intent i = new Intent(MainActivity.this, MapsActivity.class); i.putExtra("maps", false); star
case R.id.buttonMaps:
Intent i = new Intent(MainActivity.this, MapsActivity.class);
i.putExtra("maps", false);
startActivity(i);
break;
这是我在活动B中的代码
buttonNavigasi.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(DetailActivity.this,MapsActivity.class);
i.putExtra("nama", daftarNama);
i.putExtra("deskripsi", daftarDeskripsi);
i.putExtra("foto", daftarFoto);
i.putExtra("marker", daftarMarker);
i.putExtra("lat", daftarLat);
i.putExtra("lng", daftarLng);
i.putExtra("maps", true);
startActivity(i);
}
});
这是我在mapsView活动中的代码
case R.id.action_refresh:
removeAllMarkers();
if(i.getBooleanExtra("maps", true)) {
mMyMarkersArray.add(new MyMarker(i.getStringExtra("nama"), i.getStringExtra("deskripsi"), i.getStringExtra("foto"), i.getStringExtra("marker"), Double.parseDouble(i.getStringExtra("lat")), Double.parseDouble(i.getStringExtra("lng"))));
UI_HANDLER.postDelayed(UI_UPDATE_RUNNABLE, 500);
}
else {
registerReceiver(mNetworkReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION));
}
getCurrentLocation();
return true;
问题是,当mapsView转到活动_B,在活动_B中,我按下后退按钮返回mapsView活动,然后在mapsView中按下刷新图标时,mapsView将转到if语句。为什么不转到mapsView活动中的else语句?我没有按活动B中的按钮nNavigasi,但我只按了后退按钮。我的代码怎么了
任何答复都将不胜感激
提前感谢。您似乎希望getBooleanExtra将值与第二个参数进行比较。第二个参数是默认值,如果找不到该值,则返回该值。getBooleanExtra返回false,因为这是您刚才在那里设置的值。if条件应为if!i、 getBooleanExtramaps,false表示不为true时执行if block,如果为true时执行else block我的问题是,当我将putExtra设置为false值时,为什么它总是获得true值?我的意思是,活动B中的按钮正在将extra设置为true并开始新的意图。如果您在问题中没有使用该代码,请不要发布它。removeAllMarkers做什么?是的,为什么当我将putExtra设置为false值时它总是得到true值?如果到达else块,它没有返回true,它返回false。这就是if-else语句的定义。为什么?我在像ifi.getBooleanExtramaps这样的if条件下初始化了false值,false您误解了基本java语法。请后退一步,了解java中的基本条件语句。您能花点时间在这个链接中查看我的问题吗