如何在android中创建多行可选文本视图



如何在android中创建多行可选择的文本视图

*如何在android中创建这个类型视图*

i want to this type output

我在这个屏幕上有6个视图,我想一次选择一个

我只想选择一个视图,选择的视图改变文本颜色和背景

这是我的xml

<com.google.android.material.chip.ChipGroup
android:id="@+id/radio1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="8dp"
android:weightSum="3"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView3">
<com.google.android.material.chip.Chip
android:id="@+id/paris"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/paris"
android:textColor="#D8000000" />
<com.google.android.material.chip.Chip
android:id="@+id/newyork"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/new_york"
android:textColor="#D8000000" />
<com.google.android.material.chip.Chip
android:id="@+id/shrilanka"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/shri_lanka"
android:textColor="#D8000000" />

<com.google.android.material.chip.Chip
android:id="@+id/china"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/china"
android:textColor="#D8000000" />
<com.google.android.material.chip.Chip
android:id="@+id/defaultimg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/defaultImg"
android:textColor="#D8000000" />
<com.google.android.material.chip.Chip
android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/image"
android:textColor="#D8000000" />
</com.google.android.material.chip.ChipGroup>

我找到解决办法了

xml>
<LinearLayout
android:id="@+id/radio1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="16dp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView3">
<RadioButton
android:id="@+id/paris"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/radiobg"
android:button="@null"
android:gravity="center"
android:text="@string/paris"
android:textColor="@drawable/txt_color" />
<RadioButton
android:id="@+id/newyork"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/radiobg"
android:button="@null"
android:gravity="center"
android:text="@string/new_york"
android:textColor="@drawable/txt_color" />
<RadioButton
android:id="@+id/shrilanka"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/radiobg"
android:button="@null"
android:gravity="center"
android:text="@string/shri_lanka"
android:textColor="@drawable/txt_color" />
</LinearLayout>
<LinearLayout
android:id="@+id/radio2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginEnd="16dp"
android:orientation="horizontal"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/radio1">
<RadioButton
android:id="@+id/china"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/radiobg"
android:button="@null"
android:gravity="center"
android:text="@string/china"
android:textColor="@drawable/txt_color" />
<RadioButton
android:id="@+id/defaultimg"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/radiobg"
android:button="@null"
android:gravity="center"
android:text="@string/defaultImg"
android:textColor="@drawable/txt_color" />
<RadioButton
android:id="@+id/image"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@drawable/radiobg"
android:button="@null"
android:gravity="center"
android:text="@string/image"
android:textColor="@drawable/txt_color" />
</LinearLayout>

芬兰湾的科特林

val clickListener: View.OnClickListener = View.OnClickListener { view ->
when (view.id) {
R.id.paris-> {
binding.shrilanka.isChecked = false
binding.newyork.isChecked = false
binding.china.isChecked = false
binding.defaultimg.isChecked = false
binding.image.isChecked = false
}
R.id.china-> {
binding.shrilanka.isChecked = false
binding.newyork.isChecked = false
binding.paris.isChecked = false
binding.defaultimg.isChecked = false
binding.image.isChecked = false
}
R.id.newyork-> {
binding.shrilanka.isChecked = false
binding.paris.isChecked = false
binding.china.isChecked = false
binding.defaultimg.isChecked = false
binding.image.isChecked = false
}
R.id.shrilanka-> {
binding.paris.isChecked = false
binding.newyork.isChecked = false
binding.china.isChecked = false
binding.defaultimg.isChecked = false
binding.image.isChecked = false
}
R.id.image-> {
binding.shrilanka.isChecked = false
binding.newyork.isChecked = false
binding.china.isChecked = false
binding.defaultimg.isChecked = false
binding.paris.isChecked = false
}
R.id.defaultimg-> {
binding.shrilanka.isChecked = false
binding.newyork.isChecked = false
binding.china.isChecked = false
binding.paris.isChecked = false
binding.image.isChecked = false
}
}
}
binding.paris.setOnClickListener(clickListener)
binding.china.setOnClickListener(clickListener)
binding.newyork.setOnClickListener(clickListener)
binding.shrilanka.setOnClickListener(clickListener)
binding.image.setOnClickListener(clickListener)
binding.defaultimg.setOnClickListener(clickListener)