2016-04-07 16 views
0

私にはListViewがあり、その中にアイテムをリストしています。私は、ユーザーが最初のリスト項目をクリックしたときに、それがある新しいActivityを開くようonItemCLickセットを持ってPreferenceActivity:私は2番目のリスト項目をクリックすると各リストビューアイテムから別のプリファレンスアクティビティを開く

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

が、それはまた同じPreferenceActivityなどを開きます最初のリスト項目に追加します。したがって、最初のリスト項目の設定を変更した場合、2番目のリスト項目をクリックするとその変更が表示されます。私はそれが基本的に毎回同じActivityを開いていることを理解しています。誰かが各リスト項目のクリックごとに異なる嗜好活動を開く方法を手伝ってください。

PreferenceActivityを開く前にIntentputExtra()を使用する必要があります。しかし、私は何を置くべきか、そしてそれを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

関連する問題