2016-04-07 49 views
0

我有一個ListView並列出其中的項目。我有一個onItemCLick一套,這樣當用戶點擊第一個列表項,它會打開一個新的Activity這是一個PreferenceActivity從每個列表查看項目打開不同的偏好活動

Intent p = new Intent(this, Settings.class);    
startActivity(p); 

當我點擊第二個列表項,它也開啓了相同PreferenceActivity爲在第一個列表項中。因此,如果我對第一個列表項的首選項進行任何更改,當我單擊第二個列表項時,我會看到這些更改。我知道它基本上每次都打開相同的Activity。有人可以幫助如何爲每個列表項點擊打開不同的偏好活動。

我想我應該在打開PreferenceActivity之前在Intent中使用putExtra()。但我不確定該放什麼以及如何在PreferenceActivity中使用它。有人可以請幫助。這甚至是正確的方法嗎?

+0

不管你的'PreferenceActivity'是否在你的'SharedPreferences'中保存了一些設置呢?因此,您會始終在設備上看到相同設置的表示。我真的不知道你在努力達到什麼,但可能有更好的辦法。 –

+0

你不想創建另一個PreferenceActivity?或者你想達到什麼目的?你是否需要相同的選擇,但多次或不同的選擇? – Nanoc

+0

@ NielsMasdorp,@ Nanoc,列表視圖中的每個列表項都是一個鬧鐘。所以基本上每個列表項都有自己的喜好,比如時間,鈴聲等等。所以我希望每個列表項都打開它自己的喜好。我是新來的。所以任何意見都會受到歡迎。謝謝 – Subhash

回答

0

將警報的標識符發送到您的PreferenceFragment,在onCreate()中檢索它並從中動態創建您的偏好設置。

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

    Bundle bundle = getIntent().getExtras(); 
    int alarmId = bundle.getString("alarmId"); 

    PreferenceScreen screen = getPreferenceManager().createPreferenceScreen(getActivity()); 
    setPreferenceScreen(screen); 

    PreferenceCategory category = new PreferenceCategory(screen.getContext()); 
    category.setTitle("Preferences for alarm " + alarmId); 
    screen.addPreference(category); 

    //For example create a checkbox preference 
    CheckBoxPreference checkBoxPref = new CheckBoxPreference(screen.getContext()); 
    checkBoxPref.setKey("checkbox_alarm_" + alarmId); 
    checkBoxPref.setTitle("Checkbox for alarm " + alarmId); 

    category.addPreference(checkBoxPref); 
} 

只是提醒一下,如果您還刪除了特定的鬧鐘,您可能需要刪除鬧鐘的所有共享首選項。

+0

非常感謝。這是完美的。 – Subhash

相關問題