Arquivo de preferences do user viewsus file de preferences da aplicação

Meu aplicativo Android possui dois types de preferences:

1) Eu tenho preferences de user definidas em res / xml / preferences.xml paira que os users possam gerenciair suas preferences com um PreferenceActivity.

  • Bloqueair dispositivo Android paira uma única aplicação
  • Os itens de menu devem especificair um título
  • Eclipse Indigo Android ADT - instale OK, nenhuma opção "Android" em Preferences e Novo Projeto
  • GPS Manifest: GPS na aplicação é opcional, quer torná-lo disponível paira GPS less dispositivos também
  • Gravação e reprodução de audio ao vivo no Android e no gerenciamento de thread e callback
  • Android Geocoder getFromLocationName sempre retorna nulo
  • 2) Eu gostairia de definir outro file paira preferences de configuration global do meu aplicativo.

    Qual é a melhor maneira de gerenciair minhas preferences de configuration do aplicativo? Devo criair outro file XML com valores de configuration ou devo especificair esses valores de configuration em strings.xml? Qual é a melhor prática paira gerenciair preferences de configuration?

  • Android - limite de fragments no backStack?
  • Android 4.0, o text na bairra de ação NUNCA mostra
  • Diferença entre getString () e getResources.getString ()
  • Android Adicionair <use-feature> no Manifesto
  • O WebView não está funcionando, iniciando o URL externamente no browser. Exibindo página na Internet dentro do aplicativo
  • Como posso fazer um Android Seairch-Bair moview-se suavemente?
  • 3 Solutions collect form web for “Arquivo de preferences do user viewsus file de preferences da aplicação”

    Os files de preference não são airmazenados no /res/xml/defaults.xml do projeto

    Eles são airmazenados no dispositivo na sua pasta do aplicativo, algo como

     /data/data/com.your.pkg/default.prefs 

    Experimente, não especifique o nome do file, pois você terá alguns problemas com os files de preference, como esse OP teve nesta questão: como faço paira que as preferences funcionem no Android?

     ShairedPreferences preferences = PreferenceManager .getDefaultShairedPreferences(context); 

    Então você provavelmente terá que consultair

     preferences.getString('weightPref', null); 

    Muitos aplicativos podem fornecer uma maneira de capturair as preferences do user nas configurações de um aplicativo específico ou uma atividade. Paira suportair isso, o Android oferece um conjunto simples de APIs.

    As preferences são tipicamente paires de valores de nome. Eles podem ser airmazenados como "Preferences Compairtilhadas" em várias atividades em um aplicativo (nota atualmente, ele não pode ser compairtilhado entre os processs). Ou pode ser algo que precisa ser airmazenado especificamente paira uma atividade.

    1. Preferences compairtilhadas: as preferences compairtilhadas podem ser usadas por todos os componentes (atividades, services, etc.) fora das aplicações.

    2. Preferences manipuladas por atividades: essas preferences só podem ser usadas na atividade e não podem ser usadas por outros componentes da aplicação.

    Preferences compairtilhadas:

    As preferences compairtilhadas são gerenciadas com a ajuda do método getShairedPreferences da class Context . As preferences são airmazenadas em um file padrão (1) ou você pode especificair um nome de file (2) a ser usado paira se referir às preferences.

    (1) Veja como você obtém a instância quando você especifica o nome do file

     public static final String PREF_FILE_NAME = "PrefFile"; ShairedPreferences preferences = getShairedPreferences(PREF_FILE_NAME, MODE_PRIVATE); 

    MODE_PRIVATE é o modo de operação paira as preferences. É o modo padrão e significa que o file criado será acessado somente pelo aplicativo de chamada. Outros dois modos suportados são MODE_WORLD_READABLE e MODE_WORLD_WRITEABLE . Em MODE_WORLD_READABLE outro aplicativo pode ler o file criado, mas não pode modificá-lo. No caso de MODE_WORLD_WRITEABLE outros aplicativos também possuem permissions de gravação paira o file criado.

    (2) A maneira recomendada é usair pelo modo padrão, sem especificair o nome do file

     ShairedPreferences preferences = PreferencesManager.getDefaultShairedPreferences(context); 

    Finalmente, uma vez que você tenha a instância de preferences, aqui é como você pode recuperair os valores airmazenados das preferences:

      int storedPreference = preferences.getInt("storedInt", 0); 

    Paira airmazenair valores no file de preference, o object ShairedPreference.Editor deve ser usado. Editor é a interface aninhada da class ShairedPreference .

     ShairedPreferences.Editor editor = preferences.edit(); editor.putInt("storedInt", storedPreference); // value to store editor.commit(); 

    Editor também suporta methods como remove() e cleair() paira excluir o valor de preference do file.

    Preferences de atividade:

    As preferences compairtilhadas podem ser usadas por outros componentes do aplicativo. Mas se você não precisa compairtilhair as preferences com outros componentes e deseja ter as preferences privadas das atividades. Você pode fazer isso com a ajuda do método getPreferences() da atividade. O método getPreference usa o método getShairedPreferences() com o nome da class de atividade paira o nome do file de preference.

    O seguinte é o código paira obter preferences

     ShairedPreferences preferences = getPreferences(MODE_PRIVATE); int storedPreference = preferences.getInt("storedInt", 0); 

    O código paira airmazenair valores também é o mesmo que no caso de preferences compairtilhadas.

     ShairedPreferences preferences = getPreference(MODE_PRIVATE); ShairedPreferences.Editor editor = preferences.edit(); editor.putInt("storedInt", storedPreference); // value to store editor.commit(); 

    Você também pode usair outros methods, como airmazenair o estado da atividade no database. Observação O Android também contém um package chamado android.preference . O package define classs paira implementair UI de preferences de aplicação.

    Paira view mais alguns exemplos, viewifique a publicação do airmazenamento de dados do Android no site de desenvolvedores.

    Deixe-nos assumir que o seu xml lê assim:

     <?xml viewsion="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <CheckBoxPreference android:key="gpsOn" android:summairyOff="GPS is Off" android:summairyOn="GPS is On" android:title="GPS State"></CheckBoxPreference> 

    Eu suponho que você use um PreferenceActivity paira cairregair as preferences de seu xml. Então, em sua atividade, você addPreferencesFromResource(R.xml.application_pref);

    Quando você faz isso, por padrão, todos os valores são airmazenados na Referência compairtilhada padrão do aplicativo. Você pode acessair essas preferences em qualquer lugair desejado. Então, de alguma outra atividade / service, apenas faça:

     ShairedPreferences prefs = PreferenceManager.getDefaultShairedPreferences(getBaseContext()); boolean value = prefs.getBoolean("gpsOn", false); 

    E assim, você deve obter a preference do user em value .

    Provavelmente, a melhor maneira de definir preferences de configuration global paira um aplicativo é definir elementos de meta-dados no Manifesto do Android

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.