/*
========================================================================================
Filename: 14_CheckBoxRadioButton.txt
Program 14: Create an app to demonstrate how radiobuttons and checkboxes can be used in android.
Files Included: MainActivity.java
========================================================================================

WHAT ALL TO DO / SETUP INSTRUCTIONS:
----------------------------------------------------------------------------------------
1. UI Components to Add (in res/layout/activity_main.xml):
   Add 1 RadioGroup (rgGender) containing 2 RadioButtons:
     - rbMale ('Male')
     - rbFemale ('Female')
   Add 3 CheckBox:
     - cbReading ('Reading')
     - cbTravel ('Travelling')
     - cbMovies ('Watching Movies')
   Add 1 Button:
     - Text: 'Display', onClick: 'displaySelection'
   Add 5 TextView:
     - Headings: 'CheckBox and Radio Button', 'Gender', 'Hobbies'
     - Result TextViews: tvSelectedGender, tvSelectedHobbies

2. Layout Configuration:
   - LinearLayout (vertical, gravity='center', padding 20dp)

3. Menu Configuration:
   - None required.

4. Themes Configuration (res/values/themes.xml):
   - Default theme.

5. AndroidManifest.xml:
   <activity android:name=".MainActivity" android:exported="true" />

6. Additional Files & Resources Required:
   - None.
========================================================================================
*/

// ======================================================================================
// File: MainActivity.java
// ======================================================================================
package com.example.checkboxradiobutton;

import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {
    RadioGroup rgGender;
    CheckBox cbReading,cbTravel,cbMovies;
    TextView tvSelectedGender,tvSelectedHobbies;
    @Override
    protected void onCreate(Bundle b) {
        super.onCreate(b);
        setContentView(R.layout.activity_main);
        rgGender=findViewById(R.id.rgGender);
        cbReading=findViewById(R.id.cbReading);
        cbTravel=findViewById(R.id.cbTravel);
        cbMovies=findViewById(R.id.cbMovies);
        tvSelectedGender=findViewById(R.id.tvSelectedGender);
        tvSelectedHobbies=findViewById(R.id.tvSelectedHobbies);
    }

    public void displaySelection(View v) {
        int id=rgGender.getCheckedRadioButtonId();
        if(id==-1) {
            Toast.makeText(this,"Please select a gender",Toast.LENGTH_SHORT).show();
            return;
        }

        RadioButton r=findViewById(id);
        StringBuilder h=new StringBuilder();
        if(cbReading.isChecked())h.append("Reading");
        if(cbTravel.isChecked()) {
            if(h.length()>0)h.append(", ");
            h.append("Travelling");
        }

        if(cbMovies.isChecked()) {
            if(h.length()>0)h.append(", ");
            h.append("Watching Movies");
        }

        if(h.length()==0)h.append("None");
        tvSelectedGender.setText("Gender: "+r.getText());
        tvSelectedHobbies.setText("Hobbies: "+h);
    }
}
