CERCA
PER MODELLO
FullScreen Chatbox! :)

Utente del giorno: carotix con ben 1 Thanks ricevuti nelle ultime 24 ore
Utente della settimana: 9mm con ben 11 Thanks ricevuti negli ultimi sette giorni
Utente del mese: 9mm con ben 34 Thanks ricevuti nell'ultimo mese

Visualizzazione dei risultati da 1 a 2 su 2
Discussione:

MultiSelectListPreference con PreferenceFragmentCompat

Se questa discussione ti è stata utile, ti preghiamo di lasciare un messaggio di feedback in modo che possa essere preziosa in futuro anche per altri utenti come te!
  1. #1
    Baby Droid


    Registrato dal
    Nov 2015
    Messaggi
    7

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    MultiSelectListPreference con PreferenceFragmentCompat

    Salve a tutti,
    sono nuovo del forum e anche della programmazione su android, per cui non conosco molto le librerie. Sto sviluppando una piccola app e mi sono imbattuto in questo problema. Per la gestione a schermo delle preference estendo la classe PreferenceFragmentCompat. Fin qui tutto ok. Ora ho necessità di inserire una preference di tipo MultiSelectListPreference, modificato opportunamente il file preference.xml lancio l'app e quando clicco sul menu per aprire il fragment con le preference ottengo questo errore:
    codice:
     Process: it.nsh.android.converter, PID: 30827
        android.view.InflateException: Binary XML file line #75: Error inflating class (not found)MultiSelectListPreference
                at android.support.v7.preference.PreferenceInflater.createItemFromTag(PreferenceInflater.java:300)
                at android.support.v7.preference.PreferenceInflater.rInflate(PreferenceInflater.java:358)
                at android.support.v7.preference.PreferenceInflater.rInflate(PreferenceInflater.java:360)
                at android.support.v7.preference.PreferenceInflater.inflate(PreferenceInflater.java:167)
                at android.support.v7.preference.PreferenceInflater.inflate(PreferenceInflater.java:117)
                at android.support.v7.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:115)
                at android.support.v7.preference.PreferenceFragmentCompat.addPreferencesFromResource(PreferenceFragmentCompat.java:363)
                at it.nsh.android.converter.ConverterPreferenceFragment.onCreatePreferences(ConverterPreferenceFragment.java:67)
                at android.support.v7.preference.PreferenceFragmentCompat.onCreate(PreferenceFragmentCompat.java:215)
                at android.support.v4.app.Fragment.performCreate(Fragment.java:1939)
                at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:988)
                at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1207)
                at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
                at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1572)
                at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:493)
                at android.os.Handler.handleCallback(Handler.java:733)
                at android.os.Handler.dispatchMessage(Handler.java:95)
                at android.os.Looper.loop(Looper.java:146)
                at android.app.ActivityThread.main(ActivityThread.java:5694)
                at java.lang.reflect.Method.invokeNative(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:515)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
                at dalvik.system.NativeStart.main(Native Method)
         Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.preference.MultiSelectListPreference" on path: DexPathList[[zip file "/data/app/it.nsh.android.converter-155.apk"],nativeLibraryDirectories=[/data/app-lib/it.nsh.android.converter-155, /vendor/lib, /system/lib]]
                at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:67)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
                at android.support.v7.preference.PreferenceInflater.createItem(PreferenceInflater.java:233)
                at android.support.v7.preference.PreferenceInflater.onCreateItem(PreferenceInflater.java:280)
                at android.support.v7.preference.PreferenceInflater.createItemFromTag(PreferenceInflater.java:289)
    ************at android.support.v7.preference.PreferenceInflater.rInflate(PreferenceInflater.java:358)
    ************at android.support.v7.preference.PreferenceInflater.rInflate(PreferenceInflater.java:360)
    ************at android.support.v7.preference.PreferenceInflater.inflate(PreferenceInflater.java:167)
    ************at android.support.v7.preference.PreferenceInflater.inflate(PreferenceInflater.java:117)
    ************at android.support.v7.preference.PreferenceManager.inflateFromResource(PreferenceManager.java:115)
    ************at android.support.v7.preference.PreferenceFragmentCompat.addPreferencesFromResource(PreferenceFragmentCompat.java:363)
    ************at it.nsh.android.converter.ConverterPreferenceFragment.onCreatePreferences(ConverterPreferenceFragment.java:67)
    ************at android.support.v7.preference.PreferenceFragmentCompat.onCreate(PreferenceFragmentCompat.java:215)
    ************at android.support.v4.app.Fragment.performCreate(Fragment.java:1939)
    ************at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:988)
    ************at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1207)
    ************at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
    ************at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1572)
    ************at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:493)
    ************at android.os.Handler.handleCallback(Handler.java:733)
    ************at android.os.Handler.dispatchMessage(Handler.java:95)
    ************at android.os.Looper.loop(Looper.java:146)
    ************at android.app.ActivityThread.main(ActivityThread.java:5694)
    ************at java.lang.reflect.Method.invokeNative(Native Method)
    ************at java.lang.reflect.Method.invoke(Method.java:515)
    ************at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
    ************at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
    ************at dalvik.system.NativeStart.main(Native Method)
    Navigo un pò e scopro che la classe MultiSelectListPreference non è presente nel pacchetto di supporto v7 ma nel v14 così aggiungo al file build.gradle la riga:
    codice:
    compile 'com.android.support:preference-v14:23.1.0'
    Riprovo a lanciare l'app questa volta il fragment con le preference si apre correttamente ma quando clicco sulla preference per aprire la dialog con la list si genera questa eccezione:
    codice:
      Process: it.nsh.android.converter, PID: 24132
        java.lang.IllegalArgumentException: Tried to display dialog for unknown preference type. Did you forget to override onDisplayPreferenceDialog()?
                at android.support.v7.preference.PreferenceFragmentCompat.onDisplayPreferenceDialog(PreferenceFragmentCompat.java:565)
                at android.support.v7.preference.PreferenceManager.showDialog(PreferenceManager.java:401)
                at android.support.v7.preference.DialogPreference.onClick(DialogPreference.java:261)
                at android.support.v7.preference.Preference.performClick(Preference.java:938)
                at android.support.v7.preference.Preference.performClick(Preference.java:924)
                at android.support.v7.preference.Preference$1.onClick(Preference.java:136)
                at android.view.View.performClick(View.java:4651)
                at android.view.View$PerformClick.run(View.java:19310)
                at android.os.Handler.handleCallback(Handler.java:733)
                at android.os.Handler.dispatchMessage(Handler.java:95)
                at android.os.Looper.loop(Looper.java:146)
                at android.app.ActivityThread.main(ActivityThread.java:5694)
                at java.lang.reflect.Method.invokeNative(Native Method)
                at java.lang.reflect.Method.invoke(Method.java:515)
                at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1291)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1107)
                at dalvik.system.NativeStart.main(Native Method)
    Ho navigato un pò ma non ho trovato nulla. Qualcuno sa aiutarmi a risolvere il problema?
    Grazie

  2.  
  3. #2
    Baby Droid


    Registrato dal
    Nov 2015
    Messaggi
    7

    Ringraziamenti
    0
    Ringraziato 0 volte in 0 Posts
    Predefinito

    Ho risolto inserendo un nuovo fragmentpreference per le preference che mi interessavano.

    Inviato dal mio SM-G800F usando Androidiani App

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire risposte
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Torna su
Privacy Policy