안드로이드 설정 화면 호출
안녕하세요 열코입니다.
프로그램 개발 중에 설정 화면을 불러와야 하는 상황이 발생할 수도 있죠?
이번에는 안드로이드 프로그래밍 중 설정 화면을 호출하는 방법에 대해 알아보겠습니다.
저는 먼저 activity_main.xml에 버튼을 아래와 같이 추가했습니다.
<Button
android:layout_gravity="center_horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/setting_btn"
android:text="설정 버튼">
</Button>
위 코드에 대해 잠깐 설명하자면,
android:layout_gravity="center_horizontal" : 버튼을 레이아웃의 중앙에 정렬합니다.
android:layout_width="wrap_content" : 버튼의 너비를 설정합니다.
android:layout_height="wrap_content" : 버튼의 높이를 설정합니다.
android:id="@+id/setting_btn" : 버튼의 id를 설정합니다. (java 단에서 사용하기 위함)
android:text="설정 버튼" : 버튼의 텍스트를 설정합니다.
다음으로 MainActivity.java로 넘어갑니다.
먼저 버튼 객체를 하나 생성해 줍시다.
private Button buttonSetting;
그리고 버튼객체를 xml의 버튼과 연결해줘야겠죠?
buttonSetting = (Button)findViewById(R.id.setting_btn);
위와 같이 xml에서 버튼에 설정한 id를 통해 java의 버튼객체와 연결해줍니다.
그리고 버튼을 클릭했을 때 이벤트를 발생시켜주어야 합니다.
이를 버튼 클릭 이벤트라고 하며, onClickListener를 사용하여 아래와 같이 구현할 수 있습니다.
buttonSetting.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Settings.ACTION_SETTINGS);
startActivityForResult(intent, 0);
}
});
Intent를 사용하여 새로운 창을 생성하여 설정 화면을 띄워주는 코드입니다.
코드가 실행되고 난 후 ActivityForResult를 통해 onActivityResult가 호출되게 됩니다.
위의 Settings.ACTION_SETTINGS에서 Intent의 매개변수를 변경하여 원하는 설정 화면을 띄울 수 있습니다.
Settings의 메소드는 아래와 같습니다.
ACTION_SETTINGS : 기본 설정 화면
ACTION_ACCESSIBILITY_SETTINGS : 접근성 설정 화면
ACTION_AIRPLANE_MODE_SETTINGS : 비행기 모드 설정 화면
ACTION_APPLICATION_SETTINGS : 앱 관련 설정 화면
ACTION_BLUETOOTH_SETTINGS : 블루투스 설정 화면
ACTION_DATE_SETTINGS : 날짜 및 시간 설정 화면
ACTION_DISPLAY_SETTINGS : 디스플레이 설정 화면
ACTION_FINGERPRINT_ENROLL : 지문 등록 설정 화면
ACTION_INTERNAL_STORAGE_SETTINGS : 내부 저장소 설정 화면
ACTION_SOUND_SETTINGS : 사운드 및 볼륨 설정 화면
ACTION_WIFI_SETTINGS : 와이파이 설정 화면
그 외 설정에 대해선 여기를 확인하세요.
설정이 모두 끝난 후 다시 앱으로 돌아오면 Intent에서 onActivityResult를 호출하게 됩니다.
onActivityResult는 오버라이딩 메소드로 alt+insert키를 눌러 Override Method를 선택한 후
onActivityResult를 생성한 후 다음과 같이 코드를 작성합니다.
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode) {
case 0 :
// 할일 작성
break;
}
super.onActivityResult(requestCode, resultCode, data);
}
위에 Intent를 최초 호출할 때 startActivityForResult에서 두번째 매개변수로 0을 보내주었었죠?
그 요청 코드가 바로 여기서 사용되는 코드입니다.
설정 화면에서 다시 앱으로 넘어오면서 onActivityResult 가 호출되며, swtich문에서 case 0부분에 걸리게 됩니다.
저는 설정 화면에서 어떤 설정을 하고 돌아왔을 때 리스트를 갱신해야 하므로 위와 같은 코드를 사용했으며,
필요시에만 작성하셔도 됩니다.
이상 '안드로이드 설정 화면 호출'에 대해 알아보았습니다.
질문 또는 오타나 잘못된 정보가 있는 경우 댓글로 달아주세요!
공감♡ 버튼을 눌러주시면 더욱 유용하고 좋은 포스팅으로 찾아뵙겠습니다.
[관련 게시글]
2018/09/21 - [Language/Android] - 안드로이드 WakeLock 잠들어있는 폰 깨우기
2018/09/20 - [Language/Android] - 안드로이드 진동(Vibrator) 사용하기
2018/09/17 - [Language/Android] - 안드로이드 notification 간단한 사용법
2018/09/17 - [Language/Android] - 안드로이드 FCM 푸시알림 예제
2018/09/12 - [Language/Android] - 안드로이드 블루투스 연동 예제 소스
2018/09/06 - [Language/Android] - 안드로이드 텍스트뷰 사용법
2018/08/20 - [Language/Android] - 안드로이드 EditText 사용법 정리
2018/08/21 - [Language/Android] - [Android] 안드로이드 내부 저장소 텍스트 파일 읽기 및 쓰기
'Android' 카테고리의 다른 글
안드로이드 블루투스 통신 예제 소스 코드 (2) | 2018.10.07 |
---|---|
안드로이드 WakeLock 잠들어있는 폰 깨우기 (9) | 2018.09.21 |
안드로이드 진동(Vibrator) 사용하기 (1) | 2018.09.20 |
안드로이드 Activity class does not exist. 오류 해결법 (1) | 2018.09.18 |
안드로이드 notification 간단한 사용법 (9) | 2018.09.17 |
안드로이드 FCM 푸시알림 예제 (8) | 2018.09.17 |
안드로이드 블루투스 연동 예제 소스 (71) | 2018.09.12 |
안드로이드 문자인식 (93) | 2018.09.07 |