Когда я нажимаю на Cardview, как сохранить его во включенном состоянии тем же цветом, пока я не нажму на OFF? - PullRequest
0 голосов
/ 02 марта 2019

У меня есть вид карты с прослушивателем при нажатии.Когда я нажимаю на него, цвет карты меняется, что означает, что он включен.Но когда я перехожу к любому другому виду деятельности, цвет карты меняется.Я не хочу, чтобы этот цвет изменился.Помоги мне.Код просмотра карты ...

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

1 Ответ

0 голосов
/ 02 марта 2019

попробуйте это:

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