Quero armazenar um valor de tempo e preciso recuperá-lo e editá-lo. Como posso usar SharedPreferences
para fazer isso?
android
sharedpreferences
Muhammad Maqsoodur Rehman
fonte
fonte
Respostas:
Para obter preferências compartilhadas, use o seguinte método Em sua atividade:
Para ler as preferências:
Para editar e salvar preferências
O diretório de amostra do android sdk contém um exemplo de recuperação e armazenamento de preferências compartilhadas. Está localizado no:
Editar ==>
Notei que é importante escrever a diferença entre
commit()
eapply()
aqui também.commit()
retornetrue
se o valor foi salvo com êxito, caso contráriofalse
. Ele salva valores em SharedPreferences de forma síncrona .apply()
foi adicionado na versão 2.3 e não retorna nenhum valor em caso de sucesso ou falha. Ele salva valores em SharedPreferences imediatamente, mas inicia uma confirmação assíncrona . Mais detalhes estão aqui .fonte
this.getSharedPreferences
me dá o seguinte erro:The method getSharedPreferences(String, int) is undefined for the type MyActivity
Para armazenar valores em preferências compartilhadas:
Para recuperar valores de preferências compartilhadas:
fonte
Map<DateTime, Integer>
?Para editar dados de
sharedpreference
Para recuperar dados de
sharedpreference
Editar
Eu peguei esse snippet da amostra de demonstração da API. Tinha uma
EditText
caixa lá. Nistocontext
não é obrigatório. Estou comentando o mesmo.fonte
Escrever :
Ler :
fonte
Caminho mais fácil:
Salvar:
Para recuperar:
fonte
Configurando valores em Preferência:
Recupere dados de preferência:
mais informações:
Usando preferências compartilhadas
Preferências Compartilhadas
fonte
Classe de preferências compartilhadas de Singleton. pode ajudar para outros no futuro.
Simplesmente chamar
SharedPref.init()
emMainActivity
vezPara escrever dados
Para ler dados
fonte
Para armazenar informações
Para redefinir suas preferências
fonte
Se você estiver criando um aplicativo grande com outros desenvolvedores da sua equipe e pretender ter tudo bem organizado, sem código disperso ou diferentes instâncias do SharedPreferences, poderá fazer algo assim:
Em sua atividade, você pode salvar SharedPreferences dessa maneira
e você pode recuperar suas SharedPreferences dessa maneira
fonte
Em qualquer aplicativo, há preferências padrão que podem ser acessadas através da
PreferenceManager
instância e seu método relacionadogetDefaultSharedPreferences(Context)
.Com a
SharedPreference
instância, é possível recuperar o valor int de qualquer preferência com o getInt (chave String, int defVal) . A preferência em que estamos interessados neste caso é contrária.No nosso caso, podemos modificar a
SharedPreference
instância no nosso caso usando o edit () e use oputInt(String key, int newVal)
Nós aumentamos a contagem para o nosso aplicativo que existe além do aplicativo e é exibido de acordo.Para demonstrar ainda mais isso, reinicie e aplique novamente o aplicativo, você notará que a contagem aumentará cada vez que você reiniciar o aplicativo.
PreferencesDemo.java
Código:
main.xml
Código:
fonte
Solução simples de como armazenar o valor de login em
SharedPreferences
.Você pode estender a
MainActivity
classe ou outra classe na qual armazenará o "valor de algo que deseja manter". Coloque isso nas classes de escritor e leitor:Aqui
InputClass
está a entrada eOutputClass
a classe de saída, respectivamente.Agora você pode usá-lo em outro lugar, como em outra classe. O seguinte é
OutputClass
.fonte
Armazenar em SharedPreferences
Buscar em SharedPreferences
Nota: "temp" é o nome das preferências compartilhadas e "nome" é o valor de entrada. se o valor não sair, retorne nulo
fonte
Editar
Ler
fonte
A idéia básica do SharedPreferences é armazenar coisas no arquivo XML.
Declare o caminho do arquivo xml. (Se você não tiver esse arquivo, o Android o criará. Se você tiver esse arquivo, o Android o acessará.)
Escreva valor para Preferências Compartilhadas
o
preference_file_key
é o nome dos arquivos de preferências compartilhadas. E esse1010101
é o valor que você precisa armazenar.apply()
finalmente é salvar as alterações. Se você receber um erroapply()
, mude paracommit()
. Portanto, esta frase alternativa éLer em Preferências compartilhadas
lsp
será-1
sepreference_file_key
não tiver valor. Se 'priority_file_key' tiver um valor, ele retornará o valor disso.Todo o código para escrever é
O código para leitura é
fonte
Você pode salvar valor usando este método:
E usando esse método, você pode obter valor de SharedPreferences:
Aqui
prefKey
está a chave que você usou para salvar o valor específico. Obrigado.fonte
Aqui,
mSaved
pode ser qualquer umTextView
ouEditText
de onde podemos extrair uma string. você pode simplesmente especificar uma string. Aqui o texto será a chave que contém o valor obtido demSaved
(TextView
ouEditText
).Além disso, não há necessidade de salvar o arquivo de preferências usando o nome do pacote, ou seja, "com.example.app". Você pode mencionar seu próprio nome preferido. Espero que isto ajude !
fonte
Há muitas maneiras pelas quais as pessoas recomendam como usar as SharedPreferences . Eu fiz um projeto de demonstração aqui . O ponto principal da amostra é usar o ApplicationContext e o único objeto de preferências compartilhadas . Isso demonstra como usar SharedPreferences com os seguintes recursos: -
Exemplo de uso como abaixo: -
Obtenha o código-fonte aqui e as APIs detalhadas podem ser encontradas aqui em developer.android.com
fonte
Melhores práticas de sempre
Crie uma interface nomeada com o PreferenceManager :
Como usar com Atividade / Fragmento :
Nota: Substitua sua chave de SharedPreference por SP_TITLE .
Exemplos:
Armazene a string na shareperence :
Obtenha string do shareperence :
Espero que isso ajude você.
fonte
Para armazenar valores em preferências compartilhadas:
Para recuperar valores de preferências compartilhadas:
fonte
salvar
recuperar:
fonte
Eu escrevo uma classe auxiliar para preferências compartilhadas:
fonte
Use este exemplo simples, claro e marcado
fonte
Usando esta biblioteca simples , eis como você faz as chamadas para SharedPreferences.
fonte
Eu queria acrescentar aqui que a maioria dos trechos desta pergunta terá algo como MODE_PRIVATE ao usar SharedPreferences. Bem, MODE_PRIVATE significa que tudo o que você escreve nessa preferência compartilhada só pode ser lido pelo seu aplicativo.
Qualquer que seja a chave que você passa para o método getSharedPreferences (), o Android cria um arquivo com esse nome e armazena os dados de preferência nele. Lembre-se também de que getSharedPreferences () deve ser usado quando você pretende ter vários arquivos de preferências para seu aplicativo. Se você pretende usar um arquivo de preferência única e armazenar todos os pares de valores-chave nele, use o método getSharedPreference (). É estranho por que todo mundo (inclusive eu) simplesmente usa o sabor getSharedPreferences () sem entender a diferença entre os dois acima.
O tutorial em vídeo a seguir deve ajudar https://www.youtube.com/watch?v=2PcAQ1NBy98
fonte
Simples e sem complicações: biblioteca "Android-SharedPreferences-Helper"
Antes tarde do que nunca: criei a biblioteca "Android-SharedPreferences-Helper" para ajudar a reduzir a complexidade e o esforço de usar
SharedPreferences
. Ele também fornece algumas funcionalidades estendidas. Poucas coisas que ele oferece são as seguintes:Relativamente simples! Diferentemente da maneira padrão (ao usar a classe SharedPreferences), você NÃO precisará ligar
.edit()
e.commit()
sempre.É isso aí! Seus valores são armazenados nas preferências compartilhadas.
Novamente, apenas uma chamada de método simples com o nome da chave.
Verifique os detalhes da funcionalidade estendida, instruções de uso e instalação, etc. na Página de Repositório do GitHub .
fonte
você precisa usar SharedPreferences em AdapterClass ou qualquer outro. Naquela época, basta usar esta declaração e usar a mesma bunda acima.
para string ou valor booleano
buscar dados igual ao acima
fonte
2. para armazenar em preferência compartilhada
2.para recuperar o mesmo uso
fonte
Aqui eu criei uma classe Helper para usar preferências no android.
Esta é a classe auxiliar:
fonte
Armazenar e recuperar variáveis globais de maneira funcional. Para testar, verifique se você possui itens do Textview em sua página, remova o comentário das duas linhas do código e execute. Em seguida, comente as duas linhas novamente e corra.
Aqui, o ID do TextView é nome de usuário e senha.
Em todas as classes em que você deseja usá-lo, adicione essas duas rotinas no final. Eu gostaria que essa rotina fosse rotinas globais, mas não sei como. Isso funciona.
As variáveis estão disponíveis em qualquer lugar. Ele armazena as variáveis no "MyFile". Você pode mudar do seu jeito.
Você chama usando
o nome de usuário variável será preenchido com "frans" e a senha com "! 2 # 4%". Mesmo após uma reinicialização, eles estão disponíveis.
e você recupera usando
abaixo de todo o código do meu grid.java
abaixo, você encontra os itens de visualização de texto
fonte
Eu criei uma classe Helper para facilitar minha vida. Essa é uma classe genérica e possui muitos métodos usados em aplicativos como Preferências compartilhadas, Validade de email, Formato de data e hora. Copie esta classe no seu código e acesse seus métodos sempre que precisar.
fonte