import android.preference.PreferenceManager;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
// then you use
prefs.getBoolean("keystring", true);
Atualizar
De acordo com preferências compartilhadas | Tutorial do desenvolvedor do Android (parte 13) de Sai Geetha MN,
Muitos aplicativos podem fornecer uma maneira de capturar as preferências do usuário nas configurações de um aplicativo ou atividade específica. Para apoiar isso, o Android fornece um conjunto simples de APIs.
As preferências geralmente são pares de valores de nomes. Eles podem ser armazenados como "Preferências Compartilhadas" em várias atividades em um aplicativo (observe que atualmente não pode ser compartilhado entre processos). Ou pode ser algo que precisa ser armazenado específico para uma atividade.
Preferências compartilhadas: As preferências compartilhadas podem ser usadas por todos os componentes (atividades, serviços etc.) dos aplicativos.
Preferências de atividade manipulada: essas preferências podem ser usadas apenas dentro da atividade específica e não podem ser usadas por outros componentes do aplicativo.
Preferências Compartilhadas:
As preferências compartilhadas são gerenciadas com a ajuda do getSharedPreferences
método da Context
classe. As preferências são armazenadas em um arquivo padrão (1) ou você pode especificar um nome de arquivo (2) para ser usado para se referir às preferências.
(1) A maneira recomendada é usar o modo padrão, sem especificar o nome do arquivo
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
(2) Aqui está como você obtém a instância ao especificar o nome do arquivo
public static final String PREF_FILE_NAME = "PrefFile";
SharedPreferences preferences = getSharedPreferences(PREF_FILE_NAME, MODE_PRIVATE);
MODE_PRIVATE
é o modo operacional para as preferências. É o modo padrão e significa que o arquivo criado será acessado apenas 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 arquivo criado, mas não pode modificá-lo. No caso de MODE_WORLD_WRITEABLE
outros aplicativos, também há permissões de gravação para o arquivo criado.
Por fim, depois de ter a instância de preferências, eis como você pode recuperar os valores armazenados das preferências:
int storedPreference = preferences.getInt("storedInt", 0);
Para armazenar valores no arquivo de preferência, o SharedPreference.Editor
objeto deve ser usado. Editor
é uma interface aninhada na SharedPreference
classe
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
O Editor também suporta métodos como remove()
e clear()
para excluir os valores de preferência do arquivo.
Preferências da atividade:
As preferências compartilhadas podem ser usadas por outros componentes do aplicativo. Mas se você não precisar compartilhar as preferências com outros componentes e desejar ter preferências particulares da atividade, poderá fazê-lo com a ajuda do getPreferences()
método da atividade. O getPreference
método usa o getSharedPreferences()
método com o nome da classe de atividade para o nome do arquivo de preferência.
A seguir está o código para obter preferências
SharedPreferences preferences = getPreferences(MODE_PRIVATE);
int storedPreference = preferences.getInt("storedInt", 0);
O código para armazenar valores também é o mesmo que no caso de preferências compartilhadas.
SharedPreferences preferences = getPreference(MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putInt("storedInt", storedPreference); // value to store
editor.commit();
Você também pode usar outros métodos, como armazenar o estado da atividade no banco de dados. Nota O Android também contém um pacote chamado android.preference
. O pacote define classes para implementar a interface do usuário de preferências do aplicativo.
Para ver mais alguns exemplos, verifique a publicação de armazenamento de dados do Android no site dos desenvolvedores.
package.prefs
mas não tenho certeza.Se você não tem acesso
getDefaultSharedPreferenes()
, pode usargetSharedPreferences(name, mode)
, basta passar o nome certo.O Android cria esse nome (possivelmente com base no nome do pacote do seu projeto?). Você pode obtê-lo colocando o seguinte código em a
SettingsActivity
onCreate()
e vendo o quepreferencesName
é.A string deve ser algo parecido
com.example.projectname_preferences
. Codifique isso em algum lugar do seu projeto e passe-o paragetSharedPreferences()
e você deve estar pronto.fonte
Declare esses métodos primeiro.
Em seguida, chame isso quando quiser colocar um pref:
chame isso quando quiser obter um pref:
Ou você pode usar este objeto https://github.com/kcochibili/TinyDB--Android-Shared-Preferences-Turbo, que simplifica tudo ainda mais
Exemplo:
fonte
ter que passar o contexto por toda parte é realmente me irritar. o código se torna muito detalhado e incontrolável. Eu faço isso em todos os projetos ...
e configurá-lo na atividade principal criar
Além disso, todas as teclas de preferências devem ser independentes do idioma. Estou chocado que ninguém tenha mencionado isso.
agora chame isso de forma muito simples assim em uma linha de código
fonte
getApplicationContext()
se você tem uma caixa de seleção e gostaria de buscar seu valor, isto é, true / false em qualquer arquivo java -
Usar--
fonte
Atualizado 2019
Você pode simplesmente usar a
PowerPreference
bibliotecahttps://github.com/AliEsaAssadi/Android-Power-Preference
Obtendo instância de preferência compartilhada
Para obter a instância padrão, basta chamar
Ou se você deseja um arquivo de preferências específico
Gravando dados:
Obtendo dados
fonte
Tente seguir o código-fonte que funcionou para mim
fonte