您好,登錄后才能下訂單哦!
這篇文章主要介紹“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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。