Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Shared Preference su metodo statico

    Ciao a tutti,
    sto provando ad implementare le Shared Preference.

    Purtroppo la fase di salvataggio, dovrebbe avvenire all'interno di un metodo statico, con conseguente messaggio di errore; nello specifico

    codice HTML:
    Cannot make a static reference to the non-static method getSharedPreferences(String, int) from the type ContextWrapper
    e questo il codice incriminato

    codice:
    SharedPreferences prefs = getSharedPreferences(MY_PREFERENCES, Context.MODE_PRIVATE);
    Come posso aggirare il problema? Di cosa si tratta?
    Grazie a tutti
    Ogni popolo ha il governo che si merita...

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da GANDULE Visualizza il messaggio
    codice HTML:
    Cannot make a static reference to the non-static method getSharedPreferences(String, int) from the type ContextWrapper
    e questo il codice incriminato

    codice:
    SharedPreferences prefs = getSharedPreferences(MY_PREFERENCES, Context.MODE_PRIVATE);
    Come posso aggirare il problema?
    Dedurrei che sei su Android, perché stai usando questo ContextWrapper.

    getSharedPreferences è un metodo di istanza mentre tu evidentemente stai facendo questa invocazione da dentro un metodo di classe (static). Ovviamente non hai il this, getSharedPreferences va invocato su una istanza di ContextWrapper.

    Perché devi fare questo da un metodo statico? Puoi ricevere/ottenere in qualche modo il riferimento all'oggetto che è-un ContextWrapper? Il punto è tutto qui.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Il fatto è che sto definendo cosa accade al click di un bottone.
    In sostanza ho il pulsante... al quale click richiamo questa funzione SalvaPreferenze, che poi contiene appunto quel codice incriminato

    codice:
    btnHome.setOnClickListener(new View.OnClickListener() {				
    							@Override
    							public void onClick(View v) {
    								// TODO Auto-generated method stub
    								
    								SalvaPreferenze();
    
    
    
    
    								
    							
    								Intent openPage1 = new Intent(getActivity(), Act2.class);
    			                    startActivity(openPage1);
    			                    
    							}
    						});
    Ogni popolo ha il governo che si merita...

  4. #4
    Il fatto è che sto definendo cosa accade al click di un bottone.
    In sostanza ho il pulsante... al quale click richiamo questa funzione SalvaPreferenze, che poi contiene appunto quel codice incriminato

    codice:
    btnHome.setOnClickListener(new View.OnClickListener() {				
    							@Override
    							public void onClick(View v) {
    								// TODO Auto-generated method stub
    								
    								SalvaPreferenze();
    
    
    
    
    								
    							
    								Intent openPage1 = new Intent(getActivity(), Act2.class);
    			                    startActivity(openPage1);
    			                    
    							}
    						});
    Ogni popolo ha il governo che si merita...

  5. #5
    Dimenticavo...

    chiaramente questo pezzo di codice si trova qui dentro.

    codice:
    public static class PlaceholderFragment extends Fragment
    Come potrei portarlo fuori allora?
    Ogni popolo ha il governo che si merita...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.