Configurações Part of Android Jetpack.
Com as configurações, os usuários podem alterar a funcionalidade e o comportamento de um aplicativo. As configurações podem afetar o comportamento em segundo plano, como a frequência com que o aplicativo sincroniza os dados com a nuvem, ou podem ter um alcance maior, como alterar o conteúdo e a apresentação da interface do usuário.
O método recomendado para integrar as configurações ajustáveis do usuário no seu aplicativo é usar a biblioteca AndroidX Preference. Ela gerencia a interface do usuário e interage com o armazenamento para que você defina somente as configurações individuais que o usuário pode definir. Essa biblioteca tem um tema Material que fornece uma experiência de usuário consistente em todos os dispositivos e versões de SO.
Primeiros passos
Uma Preference
é o bloco fundamental da biblioteca Preference. Uma tela de configurações tem uma hierarquia de Preference
. É possível definir essa hierarquia como um recurso XML ou criar uma hierarquia no código.
As seções abaixo descrevem como criar uma tela de configurações simples usando a biblioteca AndroidX Preference.
Criar uma hierarquia
O exemplo a seguir mostra uma hierarquia simples definida por meio de XML:
<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto"> <SwitchPreferenceCompat app:key="notifications" app:title="Enable message notifications"/> <Preference app:key="feedback" app:title="Send feedback" app:summary="Report technical issues or suggest new features"/> </PreferenceScreen>
Essa hierarquia tem duas Preferences
individuais: uma SwitchPreferenceCompat
, que permite ao usuário ativar ou desativar uma configuração, e uma Preference
básica sem widget.
Ao criar uma hierarquia, cada Preference
precisa ter uma chave única.
Inflar a hierarquia
Para inflar uma hierarquia a partir de um atributo XML, crie um PreferenceFragmentCompat
, modifique onCreatePreferences()
e forneça o recurso XML que será inflado, conforme exibido no exemplo abaixo:
Kotlin
class MySettingsFragment : PreferenceFragmentCompat() { override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) { setPreferencesFromResource(R.xml.preferences, rootKey) } }
Java
public class MySettingsFragment extends PreferenceFragmentCompat { @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { setPreferencesFromResource(R.xml.preferences, rootKey); } }
Em seguida, você poderá adicionar esse Fragment
à Activity
, como em qualquer Fragment
:
Kotlin
class MySettingsActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) supportFragmentManager .beginTransaction() .replace(R.id.settings_container, MySettingsFragment()) .commit() } }
Java
public class MySettingsActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getSupportFragmentManager() .beginTransaction() .replace(R.id.settings_container, new MySettingsFragment()) .commit(); } }