91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

在Android中實現多選項視圖的動態增刪

小樊
83
2024-09-05 20:38:31
欄目: 編程語言

在 Android 中,要實現一個可以動態增刪多選項的視圖,可以使用 RecyclerView 和相關的 Adapter。以下是一個簡單的示例:

  1. 首先,創建一個表示選項的數據類:
data class Option(val id: Int, val text: String, var isSelected: Boolean = false)
  1. 創建一個用于顯示選項的布局(例如:option_item.xml):
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:padding="16dp">

   <CheckBox
        android:id="@+id/checkbox"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

   <TextView
        android:id="@+id/textView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Option Text" />

</LinearLayout>
  1. 創建一個用于管理選項的 Adapter:
class OptionsAdapter(private val options: MutableList<Option>) :
    RecyclerView.Adapter<OptionsAdapter.ViewHolder>() {

    class ViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
        val checkbox: CheckBox = itemView.findViewById(R.id.checkbox)
        val textView: TextView = itemView.findViewById(R.id.textView)
    }

    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ViewHolder {
        val view = LayoutInflater.from(parent.context).inflate(R.layout.option_item, parent, false)
        return ViewHolder(view)
    }

    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        val option = options[position]
        holder.checkbox.isChecked = option.isSelected
        holder.textView.text = option.text
        holder.itemView.setOnClickListener {
            option.isSelected = !option.isSelected
            holder.checkbox.isChecked = option.isSelected
        }
    }

    override fun getItemCount(): Int = options.size
}
  1. 在 Activity 或 Fragment 中設置 RecyclerView:
val options = mutableListOf<Option>()
// 添加初始選項
options.add(Option(1, "Option 1"))
options.add(Option(2, "Option 2"))
options.add(Option(3, "Option 3"))

val recyclerView: RecyclerView = findViewById(R.id.recyclerView)
recyclerView.layoutManager = LinearLayoutManager(this)
val adapter = OptionsAdapter(options)
recyclerView.adapter = adapter
  1. 添加按鈕以動態增刪選項:
val addButton: Button = findViewById(R.id.addButton)
val removeButton: Button = findViewById(R.id.removeButton)

addButton.setOnClickListener {
    val newOption = Option(options.size + 1, "New Option ${options.size + 1}")
    options.add(newOption)
    adapter.notifyItemInserted(options.size - 1)
}

removeButton.setOnClickListener {
    if (options.isNotEmpty()) {
        options.removeAt(options.size - 1)
        adapter.notifyItemRemoved(options.size)
    }
}

這樣,你就可以通過點擊 “添加” 和 “刪除” 按鈕來動態地向 RecyclerView 中添加或刪除多選項了。

0
新乡市| 丹凤县| 曲沃县| 延边| 杭锦后旗| 浠水县| 吉水县| 龙口市| 景德镇市| 会昌县| 信丰县| 若羌县| 吴忠市| 清远市| 偏关县| 丰都县| 高清| 陆丰市| 库尔勒市| 建始县| 崇左市| 绥棱县| 万州区| SHOW| 清流县| 潼南县| 道孚县| 民乐县| 清苑县| 五家渠市| 大宁县| 沧源| 和硕县| 措勤县| 凌云县| 榆林市| 城口县| 宁津县| 泊头市| 比如县| 广德县|