상세 컨텐츠

본문 제목

[안드로이드] 라디오버튼 예제 배경색 바꾸기 setOnCheckedChangeListener

안드로이드

by aries574 2020. 6. 8. 15:41

본문


2020/06/07 - [안드로이드] - [안드로이드] 라디오버튼 예제 RadioGroup RadioButton

이번에는 라디오버튼 클릭 시 색상변경을 해보겠습니다. 


1. activity_main.xml

각 레이아웃, 라디오버튼에 id를 지정해줍니다. 이유는 id를 정해줘야 그 id를 통해 java(백그라운드)에서 해당 객체를 변경할 수 있기 

때문입니다. 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">

<LinearLayout
android:id="@+id/layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<RadioGroup
android:id="@+id/colorType"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">

<RadioButton
android:id="@+id/rg_red"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="빨강" />

<RadioButton
android:id="@+id/rg_blue"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="파랑" />

<RadioButton
android:id="@+id/rg_green"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="초록" />
</RadioGroup>
</LinearLayout>

</LinearLayout>

2. MainActivity.java

setBackGroundColor 메소드에 색상 rgb값을 넣어주면 해당 색상으로 변경이 됩니다.



public class MainActivity extends AppCompatActivity {
//1. 레이아웃 선언
LinearLayout layout;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//2. 레이아웃 객체생성
layout = findViewById(R.id.layout);

//3.라디오버튼 객체 생성
RadioGroup colorType = findViewById(R.id.colorType);
//4. 라디오버튼 체크시 이벤트
colorType.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {

if(checkedId == R.id.rg_red)
{
//빨강으로 변경
layout.setBackgroundColor(Color.rgb(255,0,0));
}else if(checkedId == R.id.rg_blue)
{
//파랑으로 변경
layout.setBackgroundColor(Color.rgb(0,0,255));
}else if(checkedId == R.id.rg_green)
{
//초록으로 변경
layout.setBackgroundColor(Color.rgb(0,255,0));
}
}
});
}
}


반응형

관련글 더보기

댓글 영역