只要单击toggleButton,就会调用onActivityCreated

时间:2018-11-11 19:30:52

标签: java android firebase android-fragments adapter

我在适配器类中初始化了片段中的切换按钮,它用作收藏夹列表按钮,如果单击该产品,它将产品添加到firebase数据库中,然后再次单击将其删除。

addToCart.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
            if (customer.userId != null) {
                mFirebaseDatabase = FirebaseDatabase.getInstance();
                mCustomerRefernce = mFirebaseDatabase.getReference().child("Favorite").child(customer.userId);
                cmObej = getItem(position);
                if (isChecked) {
                    mCustomerRefernce.child(cmObej.getId()).setValue(true);
                    addToCart.setBackgroundDrawable(ContextCompat.getDrawable(getContext(), R.drawable.ic_filledstar_blue2_24dp));
                } else {
                    mCustomerRefernce.child(cmObej.getId()).removeValue();
                    addToCart.setBackgroundDrawable(ContextCompat.getDrawable(getContext(), R.drawable.ic_star_border_blue2_24dp));
                }
            }else{
                new AlertDialog.Builder(getContext())
                        .setTitle("Alert")
                        .setMessage("Can't add to the list, do you want to sign in?")
                        .setCancelable(true)
                        .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Intent i = new Intent(getContext(), Signin2.class);
                                getContext().startActivity(i); }
                        }).setNegativeButton("No", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {

                    }
                }).show();
            }
        }
    });

问题在于,每当点击新活动时,都会初始化您的行为

V/FA: Activity paused, time: 9574193
V/FA: onActivityCreated
V/FA: Activity resumed, time: 9574270 

您认为问题出在哪里?

1 个答案:

答案 0 :(得分:0)

在现有活动之上出现对话框时,现有活动将通过调用onPause()进入部分不可见状态

如果用户从暂停状态(在这种情况下为关闭的对话框)返回到您的活动,则系统将恢复该活动并调用onResume()方法。

您的活动嵌入片段,onActivityCreated将在活动恢复时被调用。