Autore Topic: ListPreference  (Letto 792 volte)

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
ListPreference
« il: 18 Marzo 2011, 23:06:40 CET »
0
Che voi sappiate è possibile personalizzare la lista di una ListPreference mettendo di fianco al Radiobutton invece che il testo un'immagine ?

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:ListPreference
« Risposta #1 il: 18 Marzo 2011, 23:13:31 CET »
0
Secondo me fai prima creare un semplice dialog, mostrarlo quando viene premuta la preference e gestirti manualmente il salvataggio dei valori.

Alternativamente ti studi un po' la classe ListPreference, sicuramente sovrascrivendo qualche metodo puoi cambiare l'adapter che viene visualizzato e di conseguenza personalizzare la lista come vuoi.

Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:ListPreference
« Risposta #2 il: 18 Marzo 2011, 23:22:00 CET »
0
mmm per quanto riguarda la prima opzione come faccio però a far visualizzare un dialog alla pressione della preference ? l'unico metodo che si può usare è il setIntent invece io dovrei chiamare lo showdialog...


Offline mimmog

  • Utente senior
  • ****
  • Post: 731
  • Respect: +11
    • MisterX_Dev
    • Mostra profilo
  • Dispositivo Android:
    Galaxy Note e Galaxy Nexus
  • Play Store ID:
    MisterX_Dev
  • Sistema operativo:
    Windows 7
Re:ListPreference
« Risposta #4 il: 19 Marzo 2011, 02:08:42 CET »
0
Ok ho fatto così :
Codice (Java): [Seleziona]
final Preference preferenceSMS1 = insert_preference(this,"Icona","Seleziona Icona");
                preferenceSMS1.setKey("sms_icon");
                preferenceSMS1.setPersistent(true);
                preferenceSMS1.setOnPreferenceClickListener(new OnPreferenceClickListener(){
                        @Override
                        public boolean onPreferenceClick(Preference arg0) {
                                AlertDialog.Builder builder = new AlertDialog.Builder(context);
                                builder.setTitle("Scegli l'icona");
                               
                                LayoutInflater inflater = (LayoutInflater) getBaseContext().getSystemService(LAYOUT_INFLATER_SERVICE);
                                View layout = inflater.inflate(R.layout.row_choice,(ViewGroup) findViewById(R.id.layoutc));
                                builder.setView(layout);
                                alertDialog = builder.create();
                                alertDialog.show();
                               
                                RadioGroup radiog = (RadioGroup)layout.findViewById(R.id.radioGroup1);
                                radiog.setOnCheckedChangeListener(new OnCheckedChangeListener(){

                                        @Override
                                        public void onCheckedChanged(RadioGroup arg0, int arg1) {
                                                if(arg1 == R.id.radio0){
                                                        preferenceSMS1.setDefaultValue(R.drawable.sms);
                                                        alertDialog.dismiss();
                                                }else{
                                                        preferenceSMS1.setDefaultValue(R.drawable.sms_tab);
                                                        alertDialog.dismiss();
                                                }
                                        }
                                       
                                });
                                return true;
                        }
                       
                });
quello che non mi è chiaro è come faccio a salvare i valori delle Preference in base al Radiobutton selezionato.....perchè preferenceSMS1.setValue non me lo fa fare....ho provato come vedete a fare preferenceSMS1.setDefaultValue ma non va....ma allora come salvo il valore corrispondente ??