getBooleanExtra()总是得到真值

时间:2016-04-06 02:15:03

标签: android android-intent

我正在开发一个实现mapsView的应用程序。我有两个活动导致mapsView活动。 activity_A将导致mapsView活动,而mapsView活动将导致activity_B。我正在我的代码中实现putExtra()getBooleanExtra()

这是我在activity_A

中的代码
case R.id.buttonMaps:
    Intent i = new Intent(MainActivity.this, MapsActivity.class);
    i.putExtra("maps", false);
    startActivity(i);
break;

这是我在activity_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转到activity_B并且在activity_B中我按下后退按钮(返回到mapsView活动)然后我按下了mapsView中的刷新图标,mapsView将转到if语句。为什么它没有转到mapsView活动中的else语句?我没有在activity_B中按buttonNavigasi,但我只需按后退按钮。我的代码出了什么问题?

任何答案都将不胜感激。

提前致谢。

1 个答案:

答案 0 :(得分:0)

您似乎期望false将值与第二个参数进行比较。第二个参数是默认值,如果找不到该值,则返回该值。 virtualenv会返回{{1}},因为这是您刚刚设置的值。