Android开发怎么实现Chip监听及ChipGroup监听
导读:本文共3060字符,通常情况下阅读需要10分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: Chip监听选中状态的监听:setOnCheckedChangeListener,该监听只有设置了checkable 属性为true或者使用了【filter/entry/choice】这三个style主题的时候才生效。点击事件的监听:setOnClickListener关闭按钮被点击的监听:setOnCloseIconClickListenerJavamyChi... ...
音频解说
目录
(为您整理了一些要点),点击可以直达。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(newChipGroup.OnCheckedChangeListener(){@OverridepublicvoidonCheckedChanged(ChipGroupgroup,intcheckedId){//看到这的小伙伴可能就疑问了,区分view的id做不同的业务,如果是布局中写好的还可以,但实际上子view应该是根据接口数据添加进去的,这些点击怎么区分呢?//我们下篇示例做个完整的。Log.e("TAG","onCheckedChanged:选中view的id");}});
实例
<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns: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
publicclassTestChipAndChipGroupActivityextendsAppCompatActivity{privateList<Chip>chipViewList=newArrayList<>();@OverrideprotectedvoidonCreate(@NullableBundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_chip_chipgroup);ChipGroupmyChipGroupExample=findViewById(R.id.myChipGroupExample);List<String>dataList=newArrayList<>();dataList.add("芝麻粒儿");dataList.add("这是你的业务数据");dataList.add("根据业务数据");dataList.add("创建子View");dataList.add("公众号");dataList.add("空名先生");for(Stringtemp:dataList){myChipGroupExample.addView(createChipView(temp));}myChipGroupExample.setOnCheckedChangeListener(newChipGroup.OnCheckedChangeListener(){@OverridepublicvoidonCheckedChanged(ChipGroupgroup,intcheckedId){//看到这的小伙伴可能就疑问了,区分view的id做不同的业务,如果是布局中写好的还可以,但实际上子view应该是根据接口数据添加进去的,这些点击怎么区分呢?//我们下篇示例做个完整的。for(ChiptempChip:chipViewList){if(tempChip.getId()==checkedId){Log.e("TAG","onCheckedChanged:选中view的id内容:"+tempChip.getText());}}}});}privateViewcreateChipView(Stringtemp){ChipchipView=newChip(this);chipView.setId(View.generateViewId());chipView.setText(temp);chipView.setChipIcon(getDrawable(R.drawable.icon_xin));//设置是否可以选中chipView.setCheckable(true);chipView.setTextSize(18);chipViewList.add(chipView);returnchipView;}}
Kotlin代码
overridefunonCreate(savedInstanceState:Bundle?){super.onCreate(savedInstanceState)setContentView(R.layout.activity_test)valmyChipGroupExample=findViewById<ChipGroup>(R.id.myChipGroupExample)valdataList:MutableList<String>=java.util.ArrayList()dataList.add("芝麻粒儿")dataList.add("这是你的业务数据")dataList.add("根据业务数据")dataList.add("创建子View")dataList.add("公众号")dataList.add("空名先生")for(tempindataList){myChipGroupExample.addView(createChipView(temp!!))}myChipGroupExample.setOnCheckedChangeListener{group,checkedId->//看到这的小伙伴可能就疑问了,区分view的id做不同的业务,如果是布局中写好的还可以,但实际上子view应该是根据接口数据添加进去的,这些点击怎么区分呢?//我们下篇示例做个完整的。for(tempChipinchipViewList){if(tempChip.id==checkedId){Log.e("TAG","onCheckedChanged:选中view的id内容:"+tempChip.text)}}}}privatevalchipViewList:MutableList<Chip>=ArrayList()privatefuncreateChipView(temp:String):View?{valchipView=Chip(this)chipView.id=View.generateViewId()chipView.text=tempchipView.chipIcon=getDrawable(R.drawable.icon_xin)//设置是否可以选中chipView.isCheckable=truechipView.textSize=18fchipViewList.add(chipView)returnchipView}
效果展示
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:
Android开发怎么实现Chip监听及ChipGroup监听的详细内容,希望对您有所帮助,信息来源于网络。