中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android開發怎么實現Chip監聽及ChipGroup監聽

發布時間:2022-06-13 14:09:30 來源:億速云 閱讀:276 作者:iii 欄目:開發技術

這篇文章主要介紹“Android開發怎么實現Chip監聽及ChipGroup監聽”,在日常操作中,相信很多人在Android開發怎么實現Chip監聽及ChipGroup監聽問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Android開發怎么實現Chip監聽及ChipGroup監聽”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

Chip監聽

選中狀態的監聽:setOnCheckedChangeListener,該監聽只有設置了checkable 屬性為true或者使用了【filter/entry/choice】這三個style主題的時候才生效。

點擊事件的監聽:setOnClickListener

關閉按鈕被點擊的監聽:setOnCloseIconClickListener

Java

myChip.setOnCloseIconClickListener(View.OnClickListener { v: View? ->
    //進行業務處理
    Log.e("TAG", "onCreate: Chip文字后面圖標點擊事件")
})
myChip.setOnClickListener(View.OnClickListener { v: View? ->
    //進行業務處理
    Log.e("TAG", "onCreate: Chip整體普通點擊事件")
})
myChip.setOnCheckedChangeListener(CompoundButton.OnCheckedChangeListener { buttonView: CompoundButton?, isChecked: Boolean ->
    //進行業務處理
    Log.e("TAG", "onCreate: Chip選中狀態監聽")
})

Kotlin

myChip.setOnCloseIconClickListener(v -> {
    //進行業務處理
    Log.e("TAG", "onCreate: Chip文字后面圖標點擊事件");
});
myChip.setOnClickListener(v -> {
    //進行業務處理
    Log.e("TAG", "onCreate: Chip整體普通點擊事件");
});
myChip.setOnCheckedChangeListener((buttonView, isChecked) -> {
    //進行業務處理
    Log.e("TAG", "onCreate: Chip選中狀態監聽");
});

ChipGroup監聽

myChipGroup.setOnCheckedChangeListener(new ChipGroup.OnCheckedChangeListener() {
    @Override
    public void onCheckedChanged(ChipGroup group, int checkedId) {
        //看到這的小伙伴可能就疑問了,區分view的id做不同的業務,如果是布局中寫好的還可以,但實際上子view應該是根據接口數據添加進去的,這些點擊怎么區分呢?
        //我們下篇示例做個完整的。
        Log.e("TAG", "onCheckedChanged: 選中view的id");
    }
});

實例

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <com.google.android.material.chip.ChipGroup
        android:id="@+id/myChipGroupExample"
        android:layout_width="wrap_content"
        app:singleSelection="true"
        android:layout_height="wrap_content">
</LinearLayout>

Java

public class TestChipAndChipGroupActivity extends AppCompatActivity {
    private List<Chip> chipViewList = new ArrayList<>();
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_chip_chipgroup);
        ChipGroup myChipGroupExample = findViewById(R.id.myChipGroupExample);
        List<String> dataList = new ArrayList<>();
        dataList.add("芝麻粒兒");
        dataList.add("這是你的業務數據");
        dataList.add("根據業務數據");
        dataList.add("創建子View");
        dataList.add("公眾號");
        dataList.add("空名先生");
        for (String temp : dataList) {
            myChipGroupExample.addView(createChipView(temp));
        }
        myChipGroupExample.setOnCheckedChangeListener(new ChipGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(ChipGroup group, int checkedId) {
                //看到這的小伙伴可能就疑問了,區分view的id做不同的業務,如果是布局中寫好的還可以,但實際上子view應該是根據接口數據添加進去的,這些點擊怎么區分呢?
                //我們下篇示例做個完整的。
                for (Chip tempChip : chipViewList) {
                    if (tempChip.getId() == checkedId) {
                        Log.e("TAG", "onCheckedChanged: 選中view的id內容:" + tempChip.getText());
                    }
                }
            }
        });
    }
    private View createChipView(String temp) {
        Chip chipView = new Chip(this);
        chipView.setId(View.generateViewId());
        chipView.setText(temp);
        chipView.setChipIcon(getDrawable(R.drawable.icon_xin));
        //設置是否可以選中
        chipView.setCheckable(true);
        chipView.setTextSize(18);
        chipViewList.add(chipView);
        return chipView;
    }
}

Kotlin代碼

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.activity_test)
    val myChipGroupExample = findViewById<ChipGroup>(R.id.myChipGroupExample)
    val dataList: MutableList<String> = java.util.ArrayList()
    dataList.add("芝麻粒兒")
    dataList.add("這是你的業務數據")
    dataList.add("根據業務數據")
    dataList.add("創建子View")
    dataList.add("公眾號")
    dataList.add("空名先生")
    for (temp in dataList) {
        myChipGroupExample.addView(createChipView(temp!!))
    }
    myChipGroupExample.setOnCheckedChangeListener { group, checkedId -> //看到這的小伙伴可能就疑問了,區分view的id做不同的業務,如果是布局中寫好的還可以,但實際上子view應該是根據接口數據添加進去的,這些點擊怎么區分呢?
        //我們下篇示例做個完整的。
        for (tempChip in chipViewList) {
            if (tempChip.id == checkedId) {
                Log.e("TAG", "onCheckedChanged: 選中view的id內容:" + tempChip.text)
            }
        }
    }
}
private val chipViewList: MutableList<Chip> = ArrayList()
private fun createChipView(temp: String): View? {
    val chipView = Chip(this)
    chipView.id = View.generateViewId()
    chipView.text = temp
    chipView.chipIcon = getDrawable(R.drawable.icon_xin)
    //設置是否可以選中
    chipView.isCheckable = true
    chipView.textSize = 18f
    chipViewList.add(chipView)
    return chipView
}

效果展示

Android開發怎么實現Chip監聽及ChipGroup監聽

到此,關于“Android開發怎么實現Chip監聽及ChipGroup監聽”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

武功县| 山阳县| 泗阳县| 宜君县| 望都县| 阿荣旗| 浮梁县| 武清区| 无极县| 平乡县| 方正县| 昆明市| 本溪市| 山阳县| 绥化市| 巴南区| 潼关县| 女性| 扬中市| 株洲市| 佛学| 东丰县| 贵港市| 冕宁县| 云林县| 永清县| 公主岭市| 肥乡县| 永靖县| 枣强县| 轮台县| 马边| 三亚市| 崇礼县| 万宁市| 齐齐哈尔市| 汝阳县| 桦川县| 桑日县| 海林市| 乌鲁木齐市|