您好,登录后才能下订单哦!
这篇文章主要介绍“Android开发怎么实现Chip监听及ChipGroup监听”,在日常操作中,相信很多人在Android开发怎么实现Chip监听及ChipGroup监听问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Android开发怎么实现Chip监听及ChipGroup监听”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
选中状态的监听: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选中状态监听"); });
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监听”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。