Android修行手册 - Chip监听和ChipGroup监听
- 點擊跳轉=>《導航貼》- Unity手冊,系統實戰學習
- 點擊跳轉=>《導航貼》- Android手冊,重溫移動開發
本文約5.8千字,新手閱讀需要11分鐘,復習需要4分鐘 【收藏隨時查閱不再迷路】
👉關于作者
眾所周知,人生是一個漫長的流程,不斷克服困難,不斷反思前進的過程。在這個過程中會產生很多對于人生的質疑和思考,于是我決定將自己的思考,經驗和故事全部分享出來,以此尋找共鳴 !!!
專注于Android/Unity和各種游戲開發技巧,以及各種資源分享(網站、工具、素材、源碼、游戲等)
有什么需要歡迎私我,交流群讓學習不再孤單。
👉前提
這是小空堅持寫的Android新手向系列,歡迎品嘗。
大佬(×)
新手(√)
👉實踐過程
😜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() {@Overridepublic 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.ChipGroupandroid: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<>();@Overrideprotected 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() {@Overridepublic 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 = tempchipView.chipIcon = getDrawable(R.drawable.icon_xin)//設置是否可以選中chipView.isCheckable = truechipView.textSize = 18fchipViewList.add(chipView)return chipView }👉其他
📢作者:小空和小芝中的小空
📢轉載說明-務必注明來源:https://zhima.blog.csdn.net/
📢這位道友請留步??,我觀你氣度不凡,談吐間隱隱有王者霸氣💚,日后定有一番大作為📝!!!旁邊有點贊👍收藏🌟今日傳你,點了吧,未來你成功??,我分文不取,若不成功??,也好回來找我。
溫馨提示:點擊下方卡片獲取更多意想不到的資源。
總結
以上是生活随笔為你收集整理的Android修行手册 - Chip监听和ChipGroup监听的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 笔记本电脑查看电池容量方法
- 下一篇: 魔兽争霸【war3】(1.20E 1.2