page.title=Salvando conjuntos de valor-chave page.tags=armazenamento de dados helpoutsWidget=true trainingnavtop=true @jd:body
Caso você tenha uma coleção relativamente pequena de valores-chave para salvar, use as APIs {@link android.content.SharedPreferences}. Um objeto {@link android.content.SharedPreferences} indica um arquivo que contém pares de valores-chave e fornece métodos simples para ler e gravar. Cada arquivo {@link android.content.SharedPreferences} é gerenciado pelo framework e pode ser privado ou compartilhado.
Essa lição mostra como usar as APIs {@link android.content.SharedPreferences} para armazenar e recuperar valores simples.
Observação: as APIs {@link android.content.SharedPreferences} são usadas apenas para leitura e gravação de pares de valores-chave e não devem ser confundidas com as APIs {@link android.preference.Preference}, que ajudam a criar uma interface do usuário para as configurações do seu aplicativo (embora usem {@link android.content.SharedPreferences} como implementação para salvar as configurações de aplicativo). Para obter mais informação sobre uso de APIs {@link android.preference.Preference}, consulte a guia Configurações.
É possível criar um novo arquivo de preferência compartilhada ou acessar um existente chamando um destes dois métodos:
Por exemplo, o código a seguir é executado dentro de um {@link android.app.Fragment}. Ele acessa o arquivo de preferências compartilhadas que é identificado pela cadeia de caracteres de recursos {@code R.string.preference_file_key} e o abre usando o modo privado para que o arquivo possa ser acessado apenas pelo seu aplicativo.
Context context = getActivity(); SharedPreferences sharedPref = context.getSharedPreferences( getString(R.string.preference_file_key), Context.MODE_PRIVATE);
Ao nomear seus arquivos de preferência compartilhada, você deve usar um nome que seja identificável exclusivamente para o aplicativo, como {@code "com.example.myapp.PREFERENCE_FILE_KEY"}
Em alternativa, caso precise apenas de um arquivo de preferência compartilhada para sua atividade, use o método {@link android.app.Activity#getPreferences(int) getPreferences()}:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
Cuidado: se você criar um arquivo de preferência compartilhada com {@link android.content.Context#MODE_WORLD_READABLE} ou {@link android.content.Context#MODE_WORLD_WRITEABLE}, qualquer outro aplicativo que conhecer o identificador de arquivo poderá acessar seus dados.
Para gravar em um arquivo de preferência compartilhada, crie um {@link android.content.SharedPreferences.Editor} chamando {@link android.content.SharedPreferences#edit} em seu {@link android.content.SharedPreferences}.
Transmita as chaves e os valores que deseja gravar com métodos como {@link android.content.SharedPreferences.Editor#putInt putInt()} e {@link android.content.SharedPreferences.Editor#putString putString()}. Chame {@link android.content.SharedPreferences.Editor#commit} para salvar as alterações. Por exemplo:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); SharedPreferences.Editor editor = sharedPref.edit(); editor.putInt(getString(R.string.saved_high_score), newHighScore); editor.commit();
Para recuperar valores de um arquivo de preferência compartilhada, chame métodos como {@link android.content.SharedPreferences#getInt getInt()} e {@link android.content.SharedPreferences#getString getString()}, fornecendo a chave para o valor desejado e opcionalmente um valor padrão para retornar caso a chave não esteja presente. Por exemplo:
SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE); int defaultValue = getResources().getInteger(R.string.saved_high_score_default); long highScore = sharedPref.getInt(getString(R.string.saved_high_score), defaultValue);