2011-10-04 4 views
0

저는 Android에서 newb입니다. Android에서 RadioButtons를 사용하여 SharedPreferences를 구현하는 방법

나는 새로운 응용 프로그램을 설정하기 위해 노력하고있어 그것은 다음과 같이해야합니다 :

enter image description here

각 범주 옵션이 있습니다. 각 옵션에는 옵션의 이름과 구성 정보를 나타내는 두 개의 문자열이 있습니다. 사용자는 라디오 버튼을 탭하여 옵션을 선택합니다. 각 카테고리에 하나씩 두 개의 라디오 그룹이 있어야합니다. 이미지에 표시되지 않지만 화면 하단에 '저장'및 '취소'버튼이 있어야합니다.

레이아웃의 경우 키와 값 (TextViews 만 표시)을 표시하기 위해 getAll을 호출했습니다. 이것은 내가 잃어버린 곳입니다.

  1. 기본 설정을 RadioButton과 연결하는 방법을 모르겠습니다.
  2. 변경 사항을 저장하는 방법을 모르겠습니다 (기본 설정을 RadioButton에 연결하는 방법을 모르므로).
  3. 절약하기 전에 실제로 변경 사항이 있었는지 여부를 나타내는 더티 비트와 같은 것을 구현하고 싶지만, 안드로이드 모범 사례가 무엇인지 모릅니다.

자세히 알 수 있듯이 완전히 잃어 버렸습니다. 그래서, 어떤 도움이 될 것입니다, 대단히 감사드립니다.

답변

0

자신 만의 레이아웃으로 자신 만의 활동을 만들고 있다고 가정합니다. 이 경우 PreferenceActivity에서 제공하는 자동 환경 설정로드 및 저장 메커니즘에 액세스 할 수 없습니다.

당신은 손으로 모든 것을 해제해야합니다 : 당신이 취소 이벤트 리스너를 추가해야합니다) (하지 OnCreate하고 저장 버튼 : 당신이에서 선택 상태를 요청해야 저장() 메소드에서

Button saveButton = (Button)findViewById(R.id.saveButton); 
saveButton.setOnClickListener(new View.OnClickListener() { 
    public void onClick(View v) { 
     save(); 
    } 
}); 

라디오 버튼 및 공유 환경 설정에서 선택 사항을 저장하십시오 "더티 비트"를

private void save() { 
    String prefValue = (RadioButton)findViewById(R.id.firstButton).isChecked()?"First string":"Second string"; 
    SharedPreferences pref = PreferencesManager.getDefaultSharedPreference(this); 
    pref.edit().putString("PrefName", prefValue).commit(); 
} 

을, 두 가지 해결책이 있습니다 그 중 하나를 클릭 할 경우 라디오 버튼에 클릭 리스너를 추가하고, 너 더러워. 또는 이러한 리스너를 추가하고 현재 선택 항목을 요청하고 초기 상태와 다른지 여부를 결정할 수 있습니다.

다른 방법은 preferences.xml을 사용하여 선택한 항목에 저장할 키와 값을 지정할 수있는 preferences.xml을 만드는 것입니다.

+0

따라서 PreferencesActivity를 살펴 봤지만 게시 한 내용과 일치하는 레이아웃을 얻을 수 없습니다. 레이아웃에 라디오 버튼을 배치하는 방법을 알 수 없습니다. 또한 결국에는 이름 및/또는 구성을 편집해야하며 PreferenceActivity를 사용하여 이름 및/또는 구성을 수정하는 방법을 알지 못합니다. 가능한가? –

+0

PreferencesActivity에 대한 간략한 소개는 http://android-journey.blogspot.com/2010/01/for-almost-any-application-we-need-to.html 기본 구현에서 라디오 버튼처럼 보이는 환경 설정을 추가 할 수 있습니다. 확인란을 추가 할 수는 있지만 독점 그룹의 일부로 설정할 수는 없다고 생각합니다.각 그룹에 대해 목록 환경 설정을 사용할 수 있지만 선택할 수있는 팝업 창이 나타납니다. 이 가이드에 따라 http://groups.google.com/group/android-developers/browse_thread/thread/bc932d18cce74682?pli=1 독점 체크 박스를 만들 수 있습니다. –

+0

또는 두 개의 라디오 버튼을 사용하여 자신 만의 환경 설정 구성 요소를 만들 수 있습니다. 첫 번째 링크에서 환경 설정을 만드는 방법의 예가 있습니다. 또한 Ok 및 Cancel 단추에는 PreferencesActivity ...가 없습니다. –

0

내가 안내 할 수있는 것은 checkedchanged 이벤트에서 공유 된 pref에 값을 가져 오거나 넣을 수 있다는 것입니다. 예 :

    if(radio1 is checked) 
       { 
       sharedPref.putString(...); //puts values in pref 
       sharedPref.commit();} 
관련 문제