【问题标题】:Radio Button is selected automatically in android单选按钮在android中自动选择
【发布时间】:2012-08-07 12:05:07
【问题描述】:

quiz_list.xml : 我的 xml 文件

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

  <TextView
    android:id="@+id/question"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textColor="#43bd00"
    android:textSize="20sp"
    android:textStyle="bold"
    android:paddingTop="4dip"
    android:paddingBottom="1dip" />

  <RadioGroup
        android:id="@+id/radioGroup"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:text="Radio Group"
        >
    <RadioButton 
        android:id="@+id/option1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
    <RadioButton 
        android:id="@+id/option2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
    <RadioButton
        android:id="@+id/option3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
    <RadioButton
        android:id="@+id/option4"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        />
    </RadioGroup>


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginLeft="5dp"
    android:gravity="bottom|center_horizontal"
    android:orientation="horizontal" >

<Button
    android:id="@+id/loadPrevious"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:layout_marginTop="10dp"
    android:text="Load Previous"
    android:visibility="invisible" />

<Button
    android:id="@+id/loadNext"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:layout_marginTop="10dp"
    android:text="Load Next" />

  </LinearLayout>     

我有一个问题列表,单选按钮有相应的选项。 我面临的问题是 1.当我加载下一个列表时,已经选择了一个按钮。 2. 当我加载上一个列表时,选择了一个不同的按钮,而不是我选择的那个。

这是我的代码,其中包含 json 格式的问题。

String json = "[{\"question\": \"What?\", \"option1\": \"alpha\" , \"option2\": \"beta\" , \"option3\": \"gamma\" , \"option4\": \"alpha\"},{\"question\": \"What is your name ?\", \"option1\": \"Dinesh\" , \"option2\": \"Boopesh\" , \"option3\": \"Srinath\" , \"option4\": \"JK\"},{\"question\": \"What is the capital of India?\", \"option1\": \"Delhi\" , \"option2\": \"Bombay\" , \"option3\": \"Calcutta\" , \"option4\": \"Chennai\"}]";

Gson gson = new Gson();
JsonParser parser = new JsonParser();
    JsonArray array = parser.parse(json).getAsJsonArray();

    for(JsonElement obj : array) {
    Quiz quiz = gson.fromJson(obj,Quiz.class);
    String question = quiz.getQuestion();
    System.out.println("Question: "+question);
    quizList.add(quiz);
    }

我正在使用自定义适配器添加问题。

如何更改它以使其正常工作? 有任何想法吗 ???请告诉我...

谢谢尼西特。

【问题讨论】:

    标签: android listview radio-button


    【解决方案1】:

    试试这个

    RadioGroup radioGroup;
    RadioButton radioButton1;
    RadioButton radioButton2;
    RadioButton radioButton3;
    
    boolean hack = false;
    
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    
        radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
        radioButton1 = (RadioButton) findViewById(R.id.r1);
        radioButton2 = (RadioButton) findViewById(R.id.r2);
        radioButton3 = (RadioButton) findViewById(R.id.r3);
    
        OnClickListener radioClickListener = new OnClickListener()
        {
    
            public void onClick(View v)
            {
                if (v.getId() == radioGroup.getCheckedRadioButtonId() && hack)
                {
                    radioGroup.clearCheck();
                }
                else
                {
                    hack = true;
                }
            }
        };
    
        OnCheckedChangeListener radioCheckChangeListener = new OnCheckedChangeListener()
        {
    
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
            {
                hack = false;
            }
        };
    
        radioButton1.setOnCheckedChangeListener(radioCheckChangeListener);
        radioButton2.setOnCheckedChangeListener(radioCheckChangeListener);
        radioButton3.setOnCheckedChangeListener(radioCheckChangeListener);
    
        radioButton1.setOnClickListener(radioClickListener);
        radioButton2.setOnClickListener(radioClickListener);
        radioButton3.setOnClickListener(radioClickListener);
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-15
      • 2023-03-11
      • 2013-02-02
      • 1970-01-01
      • 2019-05-28
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      相关资源
      最近更新 更多