2017-07-20 4 views
0

Je n'utilise pas ce drapeau MODE_WORLD_READABLE dans mon application mais quand même, je reçois cette exception? Y at-il une autre raison pour cela exception, ou est-ce que je fais quelque chose de mal?java.lang.SecurityException: MODE_WORLD_READABLE

Ceci est ma logique pour la commutation entre listview-gridview, je mis un drapeau int pour eux et sauver/retrive-les dans/de préférences partagées:

private int currentViewMode = 0 ; 
static final int VIEW_MODE_LISTVIEW = 0; 
static final int VIEW_MODE_GRIDVIEW = 1; 
boolean isGridView; 

En onCreate:

currentViewMode = sharedPreferences.getInt("currentViewMode",VIEW_MODE_LISTVIEW); 

Et ma méthode swichView:

private void switchView() { 
    SharedPreferences sharedPreferences = 
         activity.getSharedPreferences("localGridCount",currentViewMode); 
    SharedPreferences.Editor editor = sharedPreferences.edit(); 

    if (VIEW_MODE_LISTVIEW == currentViewMode){ 
     // ListView 
     RecyclerView.LayoutManager mLayoutManager = new 
         GridLayoutManager(activity, 1, GridLayoutManager.VERTICAL, false); 
     gridCount = 1; 
     editor.putInt("localGridValue", gridCount); 
     recyclerView.setLayoutManager(mLayoutManager); 
     recyclerView.setItemAnimator(new DefaultItemAnimator()); 
     recyclerView.setAdapter(adapter); 
    }else{ 
     // GridView 
     RecyclerView.LayoutManager mLayoutManager = new 
         GridLayoutManager(activity, 2, GridLayoutManager.VERTICAL, false); 
     gridCount = 2; 
     editor.putInt("localGridValue", gridCount); 
     recyclerView.setLayoutManager(mLayoutManager); 
     recyclerView.setItemAnimator(new DefaultItemAnimator()); 
     recyclerView.setAdapter(adapter); 
    } 
    editor.apply(); 
} 

, ce qui est la pleine exception que je reçois (Juste Nougat): Long_Exception_Link

+0

Essayez d'utiliser getDefaultSharedPreferences (activité) au lieu de activity.getSharedPreferences ("localGridCount", currentViewMode); –

+0

@Majid Avez-vous utilisé VIEW_MODE_GRIDVIEW n'importe où dans votre code? – Raghavendra

+0

@Raghavendra oui, pour gérer le commutateur J'ai deux éléments de menu sur ma barre d'action, l'utilisation de 'VIEW_MODE_GRIDVIEW' est dans' onOptionsItemSelected' – Majid

Répondre