Translate

[Android] Preference 에서 설정 목록을 클릭 시 특정 기능이 작동해야 하는경우



App의 Setting 목록 Activity를 만들려 보니 다음과 같은게 필요하다는걸 알았다.

1. PreferenceActivity 를 상속받은 Class
2. res/xml 디렉토리 하위의 xml
3. manifest 등록


쉽게 설명되어있는 링크
어렵게 설명되어있는 링크





해당 Activity Class와 Xml 을 이용해서
클릭 시 리스트중에 선택을 하거나 on, off 기능으로 SharedPreference 에 값을 저장 할 수 있다.



* 하지만 내가 필요한 기능은 그중에 한 옵션은 클릭 시 특정 기능이 수행되어야 했었다.
(구현하려는 기능은 지금까지 쌓아놓은 로그를 지우는 버튼..)

setOnClickListener 나 OnItemClickListener 와 같은 기능이 필요했는데
다음과 같이 해결을 했다.



public class ConfigActivity extends PreferenceActivity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        addPreferencesFromResource(R.xml.preferences);
    }

    @Override
    public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
        Toast.makeText(ConfigActivity.this, "preference:"+preference.getKey(), Toast.LENGTH_SHORT).show();
        return super.onPreferenceTreeClick(preferenceScreen, preference);
    }
}


결과로 Toast 에 해당 Preference 의 key 값이 찍혔다.
그래서 if, else 로 key 값을 구분해서 기능을 수행하도록 했다.




댓글