2011-10-04 53 views
0

我是Android的新手,請耐心等待。如何在Android中使用RadioButton實現SharedPreferences

我試圖建立一個新的應用程序,它需要像這樣:

enter image description here

每個類別都有多種選擇。每個選項都有兩個字符串來表示選項的名稱和配置信息。用戶通過點擊單選按鈕來選擇一個選項。應該有兩個廣播組:每個類別一個。圖像不顯示,但屏幕底部應該有「保存」和「取消」按鈕。

對於佈局,我調用getAll以顯示鍵和值(它們只是TextViews)。這是我迷失的地方。

  1. 我不知道如何鏈接首選項與RadioButton。
  2. 我不知道如何保存更改(因爲我不知道如何將偏好鏈接到RadioButton)。
  3. 我還想實施一些類似於髒點的操作來表示在保存之前是否確實進行了更改,但我不知道Android的最佳做法是什麼。

正如你所看到的,我完全失去了。所以,任何幫助將真的,不勝感激。

回答

0

我假設您使用自己的佈局創建自己的活動。在這種情況下,您將無法訪問由PreferenceActivity提供的自動偏好加載和保存機制。

你將不得不取消手工的一切:在OnCreate(),你應該添加一個事件監聽器取消和保存按鈕:

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

在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(); 
} 

對於「髒位」,有兩種解決方法:添加一個點擊監聽器單選按鈕,如果其中任何一個被點擊,你說髒。或者您可以添加這些偵聽器,並請求當前選擇,並確定它是否與初始狀態不同。

另一種方法是創建一個PreferencesActivity,並帶有一個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

或者您可以使用兩個單選按鈕創建您自己的首選項組件,這裏有一個如何在第一個鏈接中創建首選項的示例。 此外,您將不會有使用PreferencesActivity的Ok和Cancel按鈕... –

0

我可以指導的是,在checkedchanged事件上,您可以獲取或將值放入您的共享前綴中。例如

    if(radio1 is checked) 
       { 
       sharedPref.putString(...); //puts values in pref 
       sharedPref.commit();} 
相關問題