2016-04-07 18 views
0

Bir ListView ürün listemiz var. Ben kullanıcı ilk liste öğesinin üzerine tıkladığında, öyle ki yeni Activity açılacak şekilde onItemCLick set var bir PreferenceActivity: Ben ikinci liste öğesinin üzerine tıkladığınızdaHer bir liste görünümü öğesinden farklı bir tercih etkinliği açın

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

, o da aynı PreferenceActivity olarak açılır ilk liste öğesinde. Yani, ilk liste öğesinin tercihlerinde herhangi bir değişiklik yaparsam, ikinci listeyi tıklattığımda bu değişiklikleri görüyorum. Anladığım kadarıyla her seferinde aynı Activity açılıyor. Birisi, her liste öğesi tıklaması için farklı tercih etkinliklerinin nasıl açılacağına yardımcı olabilir.

PreferenceActivity'u açmadan önce Intent numaralı telefondan putExtra() kullanmalıyım. Ama ne koymak ve nasıl kullanacağından emin değilim PreferenceActivity. Birisi lütfen yardım edebilir mi. Bu doğru yaklaşım mı?

+0

'PreferenceActivity 'bazı ayarlarınızı' SharedPreferences'nızda yapmaya devam ediyor mu? Böylece, cihazınızda aynı ayarların her zaman bir temsilini göreceksiniz. Neyi başarmaya çalıştığınızı gerçekten bilmiyorum ama muhtemelen daha iyi bir yol var. –

+0

Başka bir PreferenceActivity oluşturmak istemiyor musunuz? ya da ne elde etmeye çalışıyorsun? Aynı seçeneklere, ancak birden çok kez veya farklı seçeneklere mi ihtiyacınız var? – Nanoc

+0

@ NielsMasdorp, @ Nanoc, Liste görünümündeki her liste öğesi bir alarmdır. Yani temel olarak her liste öğesi zaman, zil sesi vb. Gibi kendi tercihlerine sahiptir. Bu yüzden her liste öğesinin kendi tercihlerini açmasını istiyorum. Ben buna yeniyim. Yani herhangi bir yorum memnuniyetle karşılanacaktır. Teşekkürler – Subhash

cevap

0

Alarm için tanımlayıcıyı PreferenceFragment numarasına gönderin, onCreate() numaralı telefondan alın ve tercihlerinizi dinamik olarak oradan oluşturun.

@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); 
} 

muhtemelen siz de belirli bir alarm kaldırırsanız bir alarm için tüm paylaşılan tercihleri ​​kaldırmak isteyeceksiniz Sadece bir hatırlatma

.

+0

Çok teşekkürler. Bu mükemmel çalışıyor. – Subhash

İlgili konular