在标签片段中使用无线电按钮



我有一个标签活动,在其中一个片段中,我有一个带有3个无线电按钮的无线电组。我试图弄清楚如何确定选择哪个单选按钮。我怀疑我需要为片段制作一个Java文件。我不确定这是否正确。我遵循了Java文件的示例。我修改了它,它无法正常工作。当我单击广播按钮时,什么都不会发生。

fragment_calies_want.xml(省略代码与问题无关)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="layout.CaloriesWant">
    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="100px"
        android:id="@+id/radioGroup"
        android:orientation="horizontal"
        android:layout_marginTop="82dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true">
        <RadioButton
            android:text="Grams"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioButtonGrams"
            android:layout_weight="1"
            tools:text="Grams" />
        <RadioButton
            android:text="Ounces"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioButtonOunces"
            android:layout_weight="1" />
        <RadioButton
            android:text="Pounds"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioButtonPounds" />
    </RadioGroup>
</RelativeLayout>

calorieswantfragment.java

package com.example.crims.caloriecalculator;
import android.app.Activity;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class CaloriesWantFragment extends Fragment {
    private RadioButton radioButton1;
    private RadioButton radioButton2;
    private RadioButton radioButton3;
    private RadioGroup radioGroupOne;
    String buttonSelected;
    Activity activity;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        final View view = inflater.inflate(R.layout.fragment_calories_want,  container, false);
        radioButton1 = (RadioButton)  view.findViewById(R.id.radioButtonGrams);
        radioButton2 = (RadioButton) view.findViewById(R.id.radioButtonOunces);
        radioButton3 = (RadioButton) view.findViewById(R.id.radioButtonPounds);
        radioGroupOne = (RadioGroup) view.findViewById(R.id.radioGroup);
        radioGroupOne.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                switch(i){
                    case R.id.radioButtonGrams:
                        buttonSelected = "button one selected";
                        break;
                    case R.id.radioButtonOunces:
                        buttonSelected = "button two selected";
                        break;
                    case R.id.radioButtonPounds:
                        buttonSelected = "button three selected";
                        break;
                    default:
                }
                Toast.makeText(activity, "radio button selected " + buttonSelected, Toast.LENGTH_SHORT).show();
            }
        });
        return view;
    }
}

初始化无线电组

 radioGroupOne = (RadioGroup) view.findViewById(R.id.radioGroup);

java文件

public class CaloriesWantFragment extends AppCompatActivity {
    private RadioButton radioButton1;
    private RadioButton radioButton2;
    private RadioButton radioButton3;
    private RadioGroup radioGroupOne;
    String buttonSelected;
    Activity activity;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
        radioButton1 = (RadioButton) findViewById(R.id.radioButtonGrams);
        radioButton2 = (RadioButton) findViewById(R.id.radioButtonOunces);
        radioButton3 = (RadioButton) findViewById(R.id.radioButtonPounds);
        radioGroupOne = (RadioGroup) findViewById(R.id.radioGroup);
        radioGroupOne.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                switch (i) {
                    case R.id.radioButtonGrams:
                        buttonSelected = "button one selected";
                        break;
                    case R.id.radioButtonOunces:
                        buttonSelected = "button two selected";
                        break;
                    case R.id.radioButtonPounds:
                        buttonSelected = "button three selected";
                        break;
                    default:
                }
                Toast.makeText(CaloriesWantFragment.this, "radio button selected " + buttonSelected, Toast.LENGTH_SHORT).show();
            }
        });
    }

XML文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <RadioGroup
        android:layout_width="match_parent"
        android:layout_height="100px"
        android:id="@+id/radioGroup"
        android:orientation="horizontal"
        android:layout_marginTop="82dp"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true">
        <RadioButton
            android:text="Grams"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioButtonGrams"
            android:layout_weight="1"
            tools:text="Grams" />
        <RadioButton
            android:text="Ounces"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioButtonOunces"
            android:layout_weight="1" />
        <RadioButton
            android:text="Pounds"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/radioButtonPounds" />
    </RadioGroup>
</RelativeLayout>

最新更新