change text of material chip

Viewed 138

I have a chip group in which chips are being added dynamically. I have to change chip text when text of chip matches "Choose date". But on deselecting the chip the chip text should be replaced with the original text.

But i am unable to find the chip id when it is deselected. I am using below code for doing same. Please suggest how can i do this.

   chipGroup.setOnCheckedChangeListener(new ChipGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(ChipGroup chipGroup, int i) {

            chipchoose = chipGroup.findViewById(i);
            if (chipchoose != null){
            String chipnamee= chipchoose.getText().toString();
            if (chipnamee.equalsIgnoreCase("Choose Date")){
                openDialogCalender();
            }
        }
        }


    });

chipchoose is null when chip is deselected.

2 Answers

Since you are adding the Chip programatically you can add for each Chip a listener.
Something like:

    chip.setOnCheckedChangeListener { chip, isChecked ->
        if (!isChecked){
            //....chip.text = "...." //replace the text
        }
    }

Well, Listener on ChipGroup can only listen to Checked state, for listening Unchecked state set Listener on target Chip.

Related