【问题标题】:In radio group Selecting radio button as yes must enable a textview & selecting radio button as no must disable textview in android在单选组中选择单选按钮为是必须启用文本视图并选择单选按钮为否必须禁用 android 中的文本视图
【发布时间】:2023-04-07 08:37:01
【问题描述】:

在单选组中选择单选按钮为 YES 必须启用文本视图,选择单选按钮为 NO 必须禁用 android 中的文本视图。

谁能解释我该怎么做?

布局代码:

<RadioGroup
    android:id="@+id/rg5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:orientation="horizontal" >

    <RadioButton
        android:id="@+id/rg5r1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:checked="true"
        android:text="NO" />

    <RadioButton
        android:id="@+id/rg5r2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="YES" />

</RadioGroup>

<TextView
    android:id="@+id/q6"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:padding="10dp"
    android:text="If &apos;Yes&apos; please list allergies"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textColor="@color/wight" />

【问题讨论】:

  • 使用CTRL+SHIFT+F 格式化您的XML
  • 帮我解决我的问题我投票赞成你的问题

标签: android radio-group


【解决方案1】:
class MainActivity extends Activity {
RadioGroup rad;
TextView q6;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    q6=(TextView) findViewById(R.id.q6);
    rad=(RadioGroup) findViewById(R.id.rg5);
    rad.setOnCheckedChangeListener(new OnCheckedChangeListener() {

        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            int id=rad.getCheckedRadioButtonId();
              View radioButton = rad.findViewById(id);
              if(radioButton.getId()==R.id.rg5r1)
              {
                  q6.setEnabled(false);
              }
              else
              {
                  q6.setEnabled(true);
              }
        }
    }); 
}

【讨论】:

  • OnCheckedChanged(RadioGroup group, int checkedId) 中,我将代码更改如下,它工作正常。谢谢。 rg5Button = (RadioButton)view.findViewById(checkedId); if(rg5Button.getText().toString().equals("YES")){ arrlist.healthanswers.add(rg5Button.getText().toString()); ans6.setEnabled(true); q6.setEnabled(true); }else{ ans6.setEnabled(false); }
  • 不要只放代码,说明对新开发者很有用。
【解决方案2】:

请像这样更新您的活动:

public class MainActivity extends Activity {
    TextView textView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        textView = (TextView)findViewById(R.id.q6);
        textView.setVisibility(View.GONE);
    }

    public void onRadioButtonClicked(View view) {
        // Is the button now checked?
        boolean checked = ((RadioButton) view).isChecked();

        // Check which radio button was clicked
        switch(view.getId()) {
        case R.id.rg5r1:
            if (checked)
                textView.setVisibility(View.GONE);
            break;
        case R.id.rg5r2:
            if (checked)
                textView.setVisibility(View.VISIBLE);
            break;
        }
    }

}

和这样的activity_main.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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <RadioGroup
        android:id="@+id/rg5"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="right"
        android:orientation="horizontal" >

        <RadioButton
            android:id="@+id/rg5r1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="true"
            android:text="NO" 
            android:onClick="onRadioButtonClicked"/>

        <RadioButton
            android:id="@+id/rg5r2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="YES"
            android:onClick="onRadioButtonClicked" />
    </RadioGroup>

    <TextView
        android:id="@+id/q6"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:text="If &apos;Yes&apos; please list allergies"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textColor="#FFFFFF" />

</RelativeLayout>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-17
    • 1970-01-01
    • 2021-06-06
    • 1970-01-01
    • 1970-01-01
    • 2018-09-19
    • 2017-07-24
    • 2015-08-17
    相关资源
    最近更新 更多