PreferenceActivity를 이용해 설정 화면을 간단하게 구현 할 수 있는 방법.
왼쪽과 같은 화면을 구현한 예제.
1. File > New > Other > Android > Android XML File 선택 > Next
2. 그림과 같이 선택.
Resource Type: Preference
File : File 이름 작성 ex)appsetting.xml
Root Element: PreferenceScreen
3. finish를 하면 res/xml/appsetting.xml파일이 생성된 것을 볼 수 있다.
4. Add... 버튼 선택
5. 앱버전, 문의하기와 같이 카테고리를 작성하기 위해서는 PreferenceCategory 를 선택.
6. key 와 Title 작성.
key : keycateappversion
Title : 앱버전
7. 안의 3.0.6을 만들기 위해 다시 Add... 선택
8. 이번엔 Preference 선택.
9. key 와 Title 작성.
key : keyappversion
Title : 3.0.6
10. 다른 것도 위와 같은 식으로 하면 아래와 같이 작성 된다.
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 
 | 
<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" > 
    <PreferenceCategory 
        android:key="keycateappversion" 
        android:title="앱버전" > 
        <Preference 
            android:key="keyappversion" 
            android:title="3.0.6" /> 
    </PreferenceCategory> 
    <Preference 
        android:key="keyagree" 
        android:title="약관 및 취급방침" /> 
    <PreferenceCategory 
        android:key="keycatehelp" 
        android:title="문의하기" > 
        <Preference 
            android:key="keyhelp" 
            android:title="도움말" /> 
        <Preference 
            android:key="keycontact" 
            android:title="고객센터" /> 
    </PreferenceCategory> 
</PreferenceScreen> 
 | 
11. 이제 java class를 만들어보자.
File > New > class > superclass: 의 Browse...선택 >
Choose a type: preference 작성 > PreferenceActivity 선택 >
Name 작성 > OK >
12. 생성된 java파일의 oncreate에 addPreferencesFromResource(R.xml.appsetting); 작성
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 
31 
 | 
public class appSetting extends PreferenceActivity implements OnPreferenceClickListener{ 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        addPreferencesFromResource(R.xml.setting); 
        getActionBar().setTitle("설정"); 
        Preference pAppName = (Preference)findPreference("keyhelp"); 
        Preference pAppVersion = (Preference)findPreference("keycontact"); 
        pAppName.setOnPreferenceClickListener(this); 
        pAppVersion.setOnPreferenceClickListener(this); 
    } 
    @Override 
    public boolean onPreferenceClick(Preference preference) 
    { 
        // 도움말 선택시  
        if(preference.getKey().equals("keyhelp")) 
        { 
            Intent intent = new Intent(Setting.this, appHelp.class); 
            startActivityForResult(intent, 0);  
        } 
        else if(preference.getKey().equals("keycontact")) 
        { 
        } 
        return false; 
    } 
} 
 | 


댓글
댓글 쓰기