【问题标题】:change text of material chip更改材料芯片的文本
【发布时间】:2021-06-20 00:23:08
【问题描述】:

我有一个芯片组,其中正在动态添加芯片。当芯片文本匹配“选择日期”时,我必须更改芯片文本。但在取消选择芯片时,芯片文本应替换为原始文本。

但是当它被取消选择时我无法找到芯片ID。 我正在使用下面的代码来做同样的事情。请建议我该怎么做。

   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 为空。

【问题讨论】:

    标签: android material-components-android android-chips


    【解决方案1】:

    好吧,ChipGroup 上的Listener 只能监听 Checked 状态,因为目标 Chip 上的监听 Unchecked 状态集 Listener

    【讨论】:

      【解决方案2】:

      由于您以编程方式添加 Chip,因此您可以为每个 Chip 添加一个侦听器。
      比如:

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

      【讨论】:

      • 谢谢。我尝试了不同的方法。当芯片被取消选择时,我删除芯片组的所有视图,然后重新添加所有视图。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-20
      • 2019-08-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-16
      相关资源
      最近更新 更多