0

I made a dialogue box and I put radio group in it and I add three radio button 1)male 2)female 3)others if user select male so the selected radio button male should be shown in text View

1 Answers1

1

Here, I would like to share you here a simple app with both the activity and layout code. I hope this will help you.

First the layout

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="100dp"
    tools:context=".TestActivity">

    <TextView
        android:id="@+id/textView3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="20dp"
        android:text="What is your gender?"
        android:textSize="20sp"
        android:textStyle="bold" />

    <TextView
        android:id="@+id/txtViewGender"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="20dp"
        android:text="-- Selected Gender --"
        android:textSize="16sp" />

    <Button
        android:id="@+id/button"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="Select" />

</LinearLayout>

Second the Main Activity code

import android.os.Bundle
import android.widget.Button
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
import com.google.android.material.dialog.MaterialAlertDialogBuilder

class GenderActivity: AppCompatActivity() {
    private lateinit var selectedGender: String
    private var selectedGenderIndex: Int = 0
    private val gender = arrayOf("Male", "Female", "Others")
    private lateinit var txtViewGender: TextView

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_test4)

        txtViewGender = findViewById<TextView>(R.id.txtViewGender)
        var androidButton: Button = findViewById<Button>(R.id.button)
        androidButton.setOnClickListener {
            showRadioDialog()
        }
    }

    private fun showRadioDialog() {
        selectedGender = gender[selectedGenderIndex]
        MaterialAlertDialogBuilder(this)
            .setTitle("Select your gender")
            .setSingleChoiceItems(gender, selectedGenderIndex) { dialog, which ->
                selectedGenderIndex = which
                selectedGender = gender[which]
            }
            .setPositiveButton("Ok") { dialog, which ->
                Toast.makeText(this, "Selected --> $selectedGender ", Toast.LENGTH_SHORT)
                    .show()
                txtViewGender.text = selectedGender
            }
            .setNegativeButton("Cancel") { dialog, which ->
                dialog.dismiss()
            }
            .show()

    }
}

When you run the code, you will get the following two screens.

Screen 1

Screen1

Screen 2

Screen 2

senye
  • 175
  • 2
  • 15
  • Glad to hear that @AmirOrakzai, Would you please accept it as an answer if it works for you? – senye Jul 04 '22 at 09:32
  • bro, i just got some clue from your answer i done it with different techniques, but it was really helpful to me, Thanks Again :) – Amir Orakzai Jul 04 '22 at 11:05