重新启动应用程序时保存布尔状态

乔沃克

我有 6 个布尔变量,它们已初始化为 false。有 6 个不同的图像视图与这 6 个布尔假变量相关联。当用户单击这些图像中的任何一个时,相应的布尔变量将切换为 true,当用户再次单击同一图像时,它将像打开和关闭一样变为 false。对选择的选项感到满意后,用户可以单击完成按钮,数据将根据哪些选项是 true 哪些是false.

我的问题是,每当应用程序重新启动时,所有布尔变量都会再次初始化为 false,我理解这样一个事实,即应用程序为 OnCreate 类重新启动,因为变量再次为 false。即使在应用程序重新启动后,如何编写可以保存这些变量状态的特定代码?

下面是我的代码:

    boolean checkcar = false, checkPickUp = false, checkTruck = false, checkCycle = false, checkBike = false, checkMen = false;
  private FirebaseAuth firebaseAuth;
private String currentUserID;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    // Inflate the layout for this fragment
    myTransport = inflater.inflate(R.layout.fragment_transport, container, false);
    firebaseAuth = FirebaseAuth.getInstance();

    currentUserID = firebaseAuth.getCurrentUser().getUid();
    carImage = myTransport.findViewById(R.id.carTransport);
    pickUpImage = myTransport.findViewById(R.id.pickUpTransport);
    truckImage = myTransport.findViewById(R.id.truckTransport);
    cycleImage = myTransport.findViewById(R.id.cyclerTransport);
    bikeImage = myTransport.findViewById(R.id.bikeTransport);
    menImage = myTransport.findViewById(R.id.menTransport);
    done = myTransport.findViewById(R.id.selectUserTransportBtn);
    transport = FirebaseDatabase.getInstance().getReference().child("UserProfileDetails").child(currentUserID).child("Transport");



    MarkUserRegisteredTransport();


    carImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

    if (!checkcar) {
        carImage.setColorFilter(carImage.getContext().getResources().getColor(R.color.TransportAfterClicked), PorterDuff.Mode.SRC_ATOP);
        checkcar = true;
    } else {
        carImage.setColorFilter(carImage.getContext().getResources().getColor(R.color.colorAccent), PorterDuff.Mode.SRC_ATOP);
        checkcar = false;
    }
        }
    });


    pickUpImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
             if (!checkPickUp) {
        pickUpImage.setColorFilter(pickUpImage.getContext().getResources().getColor(R.color.TransportAfterClicked), PorterDuff.Mode.SRC_ATOP);
        checkPickUp = true;
    } else {
        pickUpImage.setColorFilter(pickUpImage.getContext().getResources().getColor(R.color.colorAccent), PorterDuff.Mode.SRC_ATOP);
        checkPickUp = false;
    }
        }
    });

    truckImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
             if (!checkTruck) {
        truckImage.setColorFilter(truckImage.getContext().getResources().getColor(R.color.TransportAfterClicked), PorterDuff.Mode.SRC_ATOP);
        checkTruck = true;
    } else {
        truckImage.setColorFilter(truckImage.getContext().getResources().getColor(R.color.colorAccent), PorterDuff.Mode.SRC_ATOP);
        checkTruck = false;
    }
        }
    });

    cycleImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!checkCycle) {
        cycleImage.setColorFilter(cycleImage.getContext().getResources().getColor(R.color.TransportAfterClicked), PorterDuff.Mode.SRC_ATOP);
        checkCycle = true;
    } else {
        cycleImage.setColorFilter(cycleImage.getContext().getResources().getColor(R.color.colorAccent), PorterDuff.Mode.SRC_ATOP);
        checkCycle = false;
    }
        }
    });

    bikeImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {


    menImage.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!checkMen) {
        menImage.setColorFilter(menImage.getContext().getResources().getColor(R.color.TransportAfterClicked), PorterDuff.Mode.SRC_ATOP);
        checkMen = true;
    } else {
        menImage.setColorFilter(menImage.getContext().getResources().getColor(R.color.colorAccent), PorterDuff.Mode.SRC_ATOP);
        checkMen = false;
    }

        }
    });

这是当用户可以点击完成并且信息在 firebase 中更新为 true 或 false 时使用他们的资源

    done.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
                   HashMap userTransport = new HashMap();
    userTransport.put("check Car", checkcar);
    userTransport.put("check PickUp", checkPickUp);
    userTransport.put("check Truck", checkTruck);
    userTransport.put("check Cycle", checkCycle);
    userTransport.put("check bike", checkBike);
    userTransport.put("check Men", checkMen);

    transport.updateChildren(userTransport).addOnCompleteListener(new OnCompleteListener() {
        @Override
        public void onComplete(@NonNull Task task) {
            if (task.isSuccessful()) {
                Toast.makeText(getContext(), "Transportation information updated", Toast.LENGTH_LONG).show();

            } else {
                String message = task.getException().getMessage();
                Toast.makeText(getContext(), "Error Occured: " + message, Toast.LENGTH_SHORT).show();
            }
        }
    });
        }
    });
    return myTransport;
}
亚历克斯·马莫

根据您的评论:

好吧,即使在用户删除应用程序之后,我也需要存储数据,就像 instagram 和 facebook 一样

我想告诉你,在这种情况下SharedPreferencesBundle无济于事。使用这两种技术时,在卸载应用程序时不会持续存在。如果您重新安装该应用程序,您的SharedPreferences或您的Bundle将是空的,您将根本无法使用任何数据。

为了解决这个问题,我建议你将该数据添加到数据库中,每次用户想要更新他的偏好时,相应地更改数据库中的数据。因此,在您的transport对象下创建六个 boolean 类型的新属性,并根据用户的选择相应地设置/更新它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

重新启动应用程序后保存布尔状态

来自分类Dev

重新启动应用程序后保存布尔状态

来自分类Dev

UIWebView:在重新启动应用程序时保存cookie状态

来自分类Dev

即使应用程序重新启动,也保存 UISwitch 状态

来自分类Dev

NSUserDefaults在使用应用程序时保存并重新加载,但在重新启动应用程序时重置

来自分类Dev

返回应用程序时重新启动UIViewPropertyAnimator

来自分类Dev

重新启动应用程序时列出 NullPointerException

来自分类Dev

重新启动应用程序后如何保存按钮的状态?

来自分类Dev

应用程序重新启动时保存视图状态android

来自分类Dev

即使应用程序重新启动也保存图像

来自分类Dev

为什么每次重新启动应用程序时,BluetoothDevice的地址都会更改?

来自分类Dev

重新启动应用程序时,GC日志循环数据丢失

来自分类Dev

每次重新启动应用程序时,Spring Integration都会加载文件

来自分类Dev

重新启动Vaadin应用程序时抛出java.io.NotSerializableException

来自分类Dev

在Android上重新启动/恢复应用程序时未触发deviceready事件

来自分类Dev

每次重新启动应用程序时,NSUserDefaults中的数据均消失

来自分类Dev

每次重新启动应用程序时,我都应该调用setMinimumBackgroundFetchInterval吗?

来自分类Dev

重新启动应用程序时出现“ IllegalStateException片段未附加到活动”

来自分类Dev

离开并返回我的应用程序时,android重新启动活动

来自分类Dev

每次重新启动应用程序时都会丢失数据

来自分类Dev

Android:重新启动应用程序时如何检测后台服务?

来自分类Dev

重新启动zbar条码扫描器示例应用程序时出现黑屏

来自分类Dev

重新启动应用程序时,为什么编辑文本不可见?

来自分类Dev

在Ios Simulator中重新启动应用程序时swipeGestureRecognizer不起作用

来自分类Dev

重新启动应用程序时出现“ IllegalStateException片段未附加到活动”

来自分类Dev

离开并返回我的应用程序时,android重新启动活动

来自分类Dev

重新启动zbar条码扫描器示例应用程序时出现黑屏

来自分类Dev

每次重新启动应用程序时,Spring Integration都会加载文件

来自分类Dev

在openshift中重新启动应用程序时找不到web.xml错误

Related 相关文章

  1. 1

    重新启动应用程序后保存布尔状态

  2. 2

    重新启动应用程序后保存布尔状态

  3. 3

    UIWebView:在重新启动应用程序时保存cookie状态

  4. 4

    即使应用程序重新启动,也保存 UISwitch 状态

  5. 5

    NSUserDefaults在使用应用程序时保存并重新加载,但在重新启动应用程序时重置

  6. 6

    返回应用程序时重新启动UIViewPropertyAnimator

  7. 7

    重新启动应用程序时列出 NullPointerException

  8. 8

    重新启动应用程序后如何保存按钮的状态?

  9. 9

    应用程序重新启动时保存视图状态android

  10. 10

    即使应用程序重新启动也保存图像

  11. 11

    为什么每次重新启动应用程序时,BluetoothDevice的地址都会更改?

  12. 12

    重新启动应用程序时,GC日志循环数据丢失

  13. 13

    每次重新启动应用程序时,Spring Integration都会加载文件

  14. 14

    重新启动Vaadin应用程序时抛出java.io.NotSerializableException

  15. 15

    在Android上重新启动/恢复应用程序时未触发deviceready事件

  16. 16

    每次重新启动应用程序时,NSUserDefaults中的数据均消失

  17. 17

    每次重新启动应用程序时,我都应该调用setMinimumBackgroundFetchInterval吗?

  18. 18

    重新启动应用程序时出现“ IllegalStateException片段未附加到活动”

  19. 19

    离开并返回我的应用程序时,android重新启动活动

  20. 20

    每次重新启动应用程序时都会丢失数据

  21. 21

    Android:重新启动应用程序时如何检测后台服务?

  22. 22

    重新启动zbar条码扫描器示例应用程序时出现黑屏

  23. 23

    重新启动应用程序时,为什么编辑文本不可见?

  24. 24

    在Ios Simulator中重新启动应用程序时swipeGestureRecognizer不起作用

  25. 25

    重新启动应用程序时出现“ IllegalStateException片段未附加到活动”

  26. 26

    离开并返回我的应用程序时,android重新启动活动

  27. 27

    重新启动zbar条码扫描器示例应用程序时出现黑屏

  28. 28

    每次重新启动应用程序时,Spring Integration都会加载文件

  29. 29

    在openshift中重新启动应用程序时找不到web.xml错误

热门标签

归档