View - Switch, RadioGroup(RadioButton)

웹 & 안드로이드/Android|2013. 10. 7. 09:18

1.Switch

- Togglebutton과 기능은 같다.

- API level 14이후에 나왔으므로 이전 버전은 사용 불가.

- ToggleButton과 다른점은 UI가 개선되었다는 점?(기능의 차이점은 모른다.. 알아봐야지)


xml

1
2
3
4
5
<Switch
        android:id="@+id/switch1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Switch" />


activity

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
public class MainActivity extends Activity {
    Switch sw;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        sw = (Switch)findViewById(R.id.switch1);
        
        sw.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                if(isChecked){
                    Toast.makeText(getApplicationContext(), ""+isChecked, Toast.LENGTH_SHORT).show();
                }else{
                    Toast.makeText(getApplicationContext(), ""+isChecked, Toast.LENGTH_SHORT).show();
                }
            }
        });
    }
}


-toggle버튼과 같이 isChecked로 체크되어있는지 확인이 가능하다.



2. RadioGroup

-아무리 RadioButton을 만들어도 각자 개별의 이름을 가지기 때문에 이들을 묶어야 하는 것이 필요하다.

그것이 RadioGroup이다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<RadioGroup
        android:id="@+id/radioGroup1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp" >
 
        <RadioButton
            android:id="@+id/redRadio"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="false"
            android:text="red" />
 
        <RadioButton
            android:id="@+id/blueRadio"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="false"
            android:text="blue" />
 
        <RadioButton
            android:id="@+id/greanRadio"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:checked="false"
            android:text="grean" />
 
    </RadioGroup>

-RadioGroup 안에 RadioButton 3개가 묶여있다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public class MainActivity extends Activity {
    RadioGroup radioGroup;
    TextView textView;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        radioGroup = (RadioGroup) findViewById(R.id.radioGroup1);
        textView = (TextView) findViewById(R.id.textView1);
        
        radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch(checkedId){
                case R.id.redRadio:
                    textView.setBackgroundColor(Color.RED);
                    break;
                case R.id.blueRadio:
                    textView.setBackgroundColor(Color.BLUE);
                    break;
                case R.id.greanRadio:
                    textView.setBackgroundColor(Color.GREEN);
                    break;
                }                
            }
        });
    }


-액티비티로 호출할 때에는 RadioGroup를 호출한다.

 checkedId에 체크되어있는 RadioButton의 ID가 들어 있으므로 if나 switch로 비교하면 된다.

댓글()