java - android 中的 putExtra() 和 getBooleanExtra()

标签 java android android-intent

我正在开发一个实现 mapsView 的应用程序。我有两个导致 mapsView Activity 的 Activity 。 activity_A 将导致 mapsView Activity ,而 mapsView Activity 将导致 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 Activity 中的代码

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 Activity )然后我按下 mapsView 中的刷新图标时,mapsView 将转到此代码

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);
}

为什么它不转到 mapsView Activity 中的 else 语句?我没有按 activity_B 中的 buttonNavigasi,但我只是按了后退按钮。我的代码有什么问题?

任何答案将不胜感激。

提前致谢。

最佳答案

当您按下后退按钮时,您之前的 Activity 刚刚恢复

private boolean registerRecr=false;

@Override
protected void onRestart() {
    // TODO Auto-generated method stub
    super.onRestart();

    registerRecr=true;


}
@Override
protected void onStart() {
    // TODO Auto-generated method stub
    super.onStart();

}

@Override
protected void onResume() {
    // TODO Auto-generated method stub
    super.onResume();

}

 case R.id.action_refresh:
 removeAllMarkers();
 if(i.getBooleanExtra("maps", true)&& registerRecr==false) {
     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;

关于java - android 中的 putExtra() 和 getBooleanExtra(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36430268/

相关文章:

node.js - 在nodejs中重定向未打开playstore

java - 无法从父 Activity 接收 Intent?

java - 调整大小后 JPanel 背景图像未填充面板

java - 如何在java fx 2.0中停止网格 Pane 项目随窗口缩小而缩小

android - 如何将 GPS 位置发送到我的手机(使用 eclipse)以测试 GPS 应用程序而无需离开家?

java - Android:画廊选择器和相机 Intent 在 onActivityresult 上崩溃

android - Android 3.1 的平板不能写cookie?

android - 从适配器调用开始 Activity

java - Joda Time : how to normalize ReadablePartial to expected fields?

java - 避免在运行 selenium webDriver 测试用例时打开浏览器