首页 > 解决方案 > 在点击芯片上获取芯片文本

问题描述

我是 android 新手,正在尝试玩筹码。我在xml中有这样的芯片组

<com.google.android.material.chip.ChipGroup
                                android:padding="10dp"
                                android:id="@+id/tags"
                                android:layout_width="match_parent"
                                android:layout_height="wrap_content"
                                app:chipSpacing="10dp">

                            </com.google.android.material.chip.ChipGroup>

我正在其中动态添加这样的芯片。

Chip chip = new Chip(getLayoutInflater().getContext());
            for(String genre : tags_text) {
               chip.setText(genre);
               tags.addView(chip);
           }

添加芯片工作正常。现在我想得到点击芯片的芯片文本。我想像这样

chip.setOnClickListener(new View.OnClickListener() {

                                        public void onClick(View v) {
                                            int chipsCount = tags.getChildCount();
                                            String TagText ="";
                                            int i = 0;
                                            while (i < chipsCount) {
                                                Chip chip = (Chip) tags.getChildAt(i);
                                                if (chip.isChecked() ) {
                                                    TagText = chip.getText().toString();
                                                }
                                                i++;
                                            };
                                            Log.e("CHIPS", TagText+"-OK");
                                        }
                                    });

但我总是收到空文本。让我知道是否有人可以帮助我解决它。谢谢!

标签: javaandroidandroid-chips

解决方案


您可以使用:

    chip.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            String text = ((Chip) view).getText().toString();
            //...
        }
    });

推荐阅读