当我点击Cardview时如何将其保持在ON状态并使用相同的颜色,直到我单击它为止?

问题描述 投票:1回答:1

我有一个带有点击监听器的卡片视图。当我点击它时,卡片视图的颜色会发生变化,这意味着它是开启的。但是当我继续进行任何其他活动时,卡片视图的颜色会发生变化。我不希望那种颜色得到改变。帮帮我。卡片视图代码......

    private void setToggleEvent(GridLayout mainGrid) {

    final CardView bulb=(CardView)mainGrid.getChildAt(0);

    bulb.setCardBackgroundColor(Color.parseColor("#404040"));

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

                if(bulb.getCardBackgroundColor().getDefaultColor()!=Color.parseColor("#FFD100"))
                {
                    bulb.setCardBackgroundColor(Color.parseColor("#FFD100"));

                    FirebaseDatabase database = FirebaseDatabase.getInstance();
                    DatabaseReference myRef = database.getReference("BULB");
                    myRef.setValue("1");
                }
                else
                {
                    bulb.setCardBackgroundColor(Color.parseColor("#404040"));

                    FirebaseDatabase database = FirebaseDatabase.getInstance();
                    DatabaseReference myRef = database.getReference("BULB");
                    myRef.setValue("0");
                }
            }
        });
android onclicklistener cardview
1个回答
0
投票

试试这个 :

 final SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
                SharedPreferences.Editor editor = sharedPreferences.edit();


    String color = sharedPreferences.getString("MY_KEY", "#fcfcfc");//#fcfcfc is defualt value!
     bulb.setCardBackgroundColor(Color.parseColor(color));

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


     if (bulb.getCardBackgroundColor().getDefaultColor() != Color.parseColor("#fcfcfc")) {
                            bulb.setCardBackgroundColor(Color.parseColor("#fcfcfc"));
                            sharedPreferences.edit().putString("MY_KEY", "#fcfcfc").apply();

                            FirebaseDatabase database = FirebaseDatabase.getInstance();
                            DatabaseReference myRef = database.getReference("BULB");
                            myRef.setValue("1");
                        } else {
                            bulb.setCardBackgroundColor(Color.parseColor("#404040"));
                            sharedPreferences.edit().putString("MY_KEY", "#404040").apply();

                            FirebaseDatabase database = FirebaseDatabase.getInstance();
                            DatabaseReference myRef = database.getReference("BULB");
                            myRef.setValue("0");
                        }
                    }
                });
© www.soinside.com 2019 - 2024. All rights reserved.