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

how can create multi-line selecteble text view in android

如何在 android

中创建多行 select 可用的文本视图

*如何在 android *

中创建这种类型的视图

i want to this type output

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

我只想 select 只有一个视图和 selected 视图更改文本颜色和背景

这是我的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>

kotlin

 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)