안녕하세요 열코입니다.


프로그램 개발 중에 설정 화면을 불러와야 하는 상황이 발생할 수도 있죠?

이번에는 안드로이드 프로그래밍 중 설정 화면을 호출하는 방법에 대해 알아보겠습니다.


저는 먼저 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부분에 걸리게 됩니다.

저는 설정 화면에서 어떤 설정을 하고 돌아왔을 때 리스트를 갱신해야 하므로 위와 같은 코드를 사용했으며,

필요시에만 작성하셔도 됩니다.



이상 '안드로이드 설정 화면 호출'에 대해 알아보았습니다.

질문 또는 오타나 잘못된 정보가 있는 경우 댓글로 달아주세요!

공감♡ 버튼을 눌러주시면 더욱 유용하고 좋은 포스팅으로 찾아뵙겠습니다.




to Top