为单选组中的每个单选按钮分配一个唯一的整数值,例如10,20,30,…,并返回该值以在Android中进行打印

问题描述

尝试为单选按钮组中的每个单选按钮分配唯一的Integer值或ID,例如10、20、30 ...等等,然后返回特定的值/ ID以进行进一步的操作,例如打印该ID或将其发送到后端。

例如:对于RadioButton radio_visa,它应该返回值20,对于radio_mastercard,它应该返回30,依此类推。

不知道如何处理。 谢谢您的帮助。

我的XML文件

<RadioGroup
    android:id="@+id/radioGroupCard"
    android:layout_width="151dp"
    android:layout_height="130dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.165"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.384">

    <RadioButton
        android:id="@+id/radio_visa"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onRadioButtonClickedCards"
        android:text="VISA" />

    <RadioButton
        android:id="@+id/radio_mastercard"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onRadioButtonClickedCards"
        android:text="Master Card" />

    <RadioButton
        android:id="@+id/radio_rupay"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onRadioButtonClickedCards"
        android:text="Rupay" />

    <RadioButton
        android:id="@+id/radio_amex"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onRadioButtonClickedCards"
        android:text="AMEX" />

</RadioGroup>

我的活动文件

public void onRadioButtonClickedCards(View view) {


    boolean checked = ((RadioButton) view).isChecked();

    
    switch (view.getId()) {
        case R.id.radio_visa:
            if (checked)
            // actions
            {
                IVCardType.setimageResource(R.drawable.visa);
            }
            break;

        case R.id.radio_mastercard:
            if (checked)
            // actions
            {
                IVCardType.setimageResource(R.drawable.mastercard);
                
            }
            break;

        case R.id.radio_rupay:
            if (checked)
            // actions
            {
                IVCardType.setimageResource(R.drawable.amex);
            }
            break;

        case R.id.radio_amex:
            if (checked)
            // actions
            {
                IVCardType.setimageResource(R.drawable.rupay);
            }
            break;

    }
}

解决方法

您可以为此使用RadioButton的tag属性。

android:tag="30"

实际上,任何窗口小部件都具有此属性。然后通过

((RadioButton) view).getTag()