【Android】RecyclerView+RadioButton의 작성

RadioGroup을 사용하지 않고 작성합니다.
Main 레이아웃 작성
RecyclerView 배치
activity_main.xml<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:orientation="vertical"
        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:listitem="@layout/view_item" />
</androidx.constraintlayout.widget.ConstraintLayout>
 아이템 만들기
RadioButton 배치
view_item.xml<?xml version="1.0" encoding="utf-8"?>
<RadioButton xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:text="1" />
 어댑터 작성
RecyclerView 용 어댑터 작성.
어느 버튼을 선택하고 있는지를 나타내는 변수 checkPosition 를 작성해, onBindViewHolder 함수내에서 버튼 탭시에 notifyDataSetChanged() 를 호출하는 것이 포인트.
ItemAdapter.ktclass ItemAdapter(private val items: List<String>) :
    RecyclerView.Adapter<ItemAdapter.ViewHolder>() {
    private var checkPosition = -1
    class ViewHolder(val binding: ViewItemBinding) : RecyclerView.ViewHolder(binding.root)
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) =
        ViewHolder(ViewItemBinding.inflate(LayoutInflater.from(parent.context), parent, false))
    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.binding.button.text = items[position]
        holder.binding.button.isChecked = position == checkPosition
        holder.binding.button.setOnClickListener {
            checkPosition = position
            notifyDataSetChanged()
        }
    }
    override fun getItemCount() = items.size
}
 MainActivity 만들기
방금 만든 Adapter 세트
MainActivity.ktclass MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val binding = ActivityMainBinding.inflate(layoutInflater)
        binding.recyclerView.adapter = ItemAdapter((1..20).map { it.toString() })
        setContentView(binding.root)
    }
}
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(【Android】RecyclerView+RadioButton의 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/nakashimaakio/items/1dba6470d2053f0cc615
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <androidx.recyclerview.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:orientation="vertical"
        app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:listitem="@layout/view_item" />
</androidx.constraintlayout.widget.ConstraintLayout>
RadioButton 배치
view_item.xml
<?xml version="1.0" encoding="utf-8"?>
<RadioButton xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:text="1" />
어댑터 작성
RecyclerView 용 어댑터 작성.
어느 버튼을 선택하고 있는지를 나타내는 변수 checkPosition 를 작성해, onBindViewHolder 함수내에서 버튼 탭시에 notifyDataSetChanged() 를 호출하는 것이 포인트.
ItemAdapter.ktclass ItemAdapter(private val items: List<String>) :
    RecyclerView.Adapter<ItemAdapter.ViewHolder>() {
    private var checkPosition = -1
    class ViewHolder(val binding: ViewItemBinding) : RecyclerView.ViewHolder(binding.root)
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) =
        ViewHolder(ViewItemBinding.inflate(LayoutInflater.from(parent.context), parent, false))
    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.binding.button.text = items[position]
        holder.binding.button.isChecked = position == checkPosition
        holder.binding.button.setOnClickListener {
            checkPosition = position
            notifyDataSetChanged()
        }
    }
    override fun getItemCount() = items.size
}
 MainActivity 만들기
방금 만든 Adapter 세트
MainActivity.ktclass MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val binding = ActivityMainBinding.inflate(layoutInflater)
        binding.recyclerView.adapter = ItemAdapter((1..20).map { it.toString() })
        setContentView(binding.root)
    }
}
                
                    
        
    
    
    
    
    
                
                
                
                
                    
                        
                            
                            
                            Reference
                            
                            이 문제에 관하여(【Android】RecyclerView+RadioButton의 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
                                
                                https://qiita.com/nakashimaakio/items/1dba6470d2053f0cc615
                            
                            
                            
                                텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                            
                            
                                
                                
                                 우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)
                            
                            
                        
                    
                
                
                
            
class ItemAdapter(private val items: List<String>) :
    RecyclerView.Adapter<ItemAdapter.ViewHolder>() {
    private var checkPosition = -1
    class ViewHolder(val binding: ViewItemBinding) : RecyclerView.ViewHolder(binding.root)
    override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) =
        ViewHolder(ViewItemBinding.inflate(LayoutInflater.from(parent.context), parent, false))
    override fun onBindViewHolder(holder: ViewHolder, position: Int) {
        holder.binding.button.text = items[position]
        holder.binding.button.isChecked = position == checkPosition
        holder.binding.button.setOnClickListener {
            checkPosition = position
            notifyDataSetChanged()
        }
    }
    override fun getItemCount() = items.size
}
방금 만든 Adapter 세트
MainActivity.kt
class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        val binding = ActivityMainBinding.inflate(layoutInflater)
        binding.recyclerView.adapter = ItemAdapter((1..20).map { it.toString() })
        setContentView(binding.root)
    }
}
Reference
이 문제에 관하여(【Android】RecyclerView+RadioButton의 작성), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/nakashimaakio/items/1dba6470d2053f0cc615텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
                                
                                
                                
                                
                                
                                우수한 개발자 콘텐츠 발견에 전념
                                (Collection and Share based on the CC Protocol.)