在开始时加载单选按钮选择

时间:2012-03-17 01:40:33

标签: java android

当有app加载时,我有2个单选按钮,默认为1。 如果选择1,则隐藏表2.如果选择Radiobutton 2,则隐藏表1。 除了......之外,这个工作正常 我遇到的问题是,当应用程序首次加载Radiobutton 1时,检查,但两个表都打开,直到我选择radiobutton 2然后它开始工作。所以我在初次加载时遗漏了一些东西。

非常感谢正确方向的推动。

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.RadioGroup;
import android.widget.TableLayout;
import android.widget.RadioGroup.OnCheckedChangeListener;

public class Slab  extends Activity {
private RadioGroup RadioMeat;

/** Called when the activity is first created. */
//@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.slab);

    RadioMeat = (RadioGroup) findViewById(R.id.rgMeat);        
    RadioMeat.setOnCheckedChangeListener(new OnCheckedChangeListener() 
    {

        public void onCheckedChanged(RadioGroup group, int checkedId) {
            switch (checkedId) {
            case R.id.rbBeef :
                if (checkedId == R.id.rbBeef) {
                    TableLayout tl = (TableLayout)findViewById(R.id.tableLayout1);
                    tl.setVisibility(View.VISIBLE);
                    TableLayout tl1 = (TableLayout)findViewById(R.id.tableLayout2);
                    tl1.setVisibility(View.GONE);
                } 
                break;
            case R.id.rbPork :
                 if (checkedId == R.id.rbPork) {
                    TableLayout tl = (TableLayout)findViewById(R.id.tableLayout2);
                    tl.setVisibility(View.VISIBLE);
                    TableLayout tl1 = (TableLayout)findViewById(R.id.tableLayout1);
                    tl1.setVisibility(View.GONE);
                }
                break;

        }
        }
    });
}

}

XML

<RadioGroup
        android:id="@+id/rgMeat"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <RadioButton
            android:id="@+id/rbBeef"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/Beef" 
            android:checked="true"/>

        <RadioButton
            android:id="@+id/rbPork"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/Pork" />
    </RadioGroup>

1 个答案:

答案 0 :(得分:1)

您面临的问题是,在开始时,首先调用onCreate()时,永远不会调用onCheckedChanged()。只有在检查时才会调用它。如果你以编程方式检查它而不是通过xml进行检查,它也会被调用。所以你可以做两种方式,

在你的on create()

致电

  

((TableLayout)findViewById(R.id.tableLayout2))setVisibility(View.GONE);

或致电

  

radiobutton 1的setChecked()。