调用getExtra时,Boolean将自身重置为false

Kai*_*ble 3 android boolean android-intent

当我为我的isDeleted布尔值调用getExtras.getBoolean(key)时,它会将自己设置为false,即使我传入true也是如此.有关为何发生这种情况的任何见解?我已经尝试了很多其他方法,但没有成功保持布尔值为TRUE.

其他活动:

   public void deleteWorkout(View view)
    {
        intent.putExtra("listPosition", intent.getExtras().getInt("position"));
        intent.putExtra("isDeleted", true);
        setResult(RESULT_OK, intent);
        finish();
    }
Run Code Online (Sandbox Code Playgroud)

主要活动:

case(List): {
                if(resCode == Activity.RESULT_OK)
                {
                    boolean isDeleted = intent.getExtras().getBoolean("isDeleted");
                    int listPosition = intent.getExtras().getInt("listPosition");
                    if(isDeleted)
                    {
                        adapter.remove(workoutList.get(listPosition));
                        adapter.notifyDataSetChanged();
                    }
                }
            }
            default:
                break;
            }
Run Code Online (Sandbox Code Playgroud)

Har*_*ana 6

有两种方式将一项活动传递给另一项活动.

1.将数据添加到意图中.

怎么样:

intent.putExtra("listPosition", intent.getExtras().getInt("position"));
intent.putExtra("isDeleted", true);
Run Code Online (Sandbox Code Playgroud)

如何获得 :

int listPosition = getIntent().getIntExtra("listPosition",0);
boolean isDeleted = getIntent().getBooleanExtra("isDeleted",false);
Run Code Online (Sandbox Code Playgroud)

2.将数据添加到bundle并将bundle添加到intent.

怎么样:

Bundle bundle = new Bundle();
bundle.putExtra("listPosition", intent.getExtras().getInt("position"));
bundle.putExtra("isDeleted", true);
intent.putExtras(bundle)
Run Code Online (Sandbox Code Playgroud)

如何获得 :

int listPosition = getIntent().getExtras().getInt("listPosition",0);
boolean isDeleted = getIntent().getExtras().getBoolean("isDeleted",false);
Run Code Online (Sandbox Code Playgroud)