Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.jetpackpromoviecatalogue.activities;
- import android.content.res.Configuration;
- import android.os.Build;
- import android.os.Bundle;
- import android.widget.RadioButton;
- import android.widget.RadioGroup;
- import com.example.jetpackpromoviecatalogue.Preference;
- import com.example.jetpackpromoviecatalogue.R;
- import java.util.Locale;
- public class LanguageSettingsActivity extends BaseActivity {
- private final String EXTRA_TITLE = "extra_title";
- private final String EXTRA_DEFAULT_RADIO_BUTTON = "extra_default_radio_button";
- private String mTitle;
- private RadioButton mDefaultRadioButton;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_language_settings);
- RadioGroup radioLanguages = findViewById(R.id.radio_languages);
- if (savedInstanceState == null) {
- mTitle = getResources().getString(R.string.change_language_title);
- // Check bahasa yang digunakan pada perangkat
- Configuration config = getResources().getConfiguration();
- Locale locale = Build.VERSION.SDK_INT >= 24 ? config.getLocales().get(0) : config.locale;
- // Default RadioButton Checked
- switch (locale.toString()) {
- case "in_ID":
- case "in":
- mDefaultRadioButton = findViewById(R.id.radio_lang_id);
- break;
- default:
- mDefaultRadioButton = findViewById(R.id.radio_lang_en);
- break;
- }
- } else {
- // Restore RadioButton Checked, Title
- mDefaultRadioButton = findViewById(savedInstanceState.getInt(EXTRA_DEFAULT_RADIO_BUTTON));
- mTitle = savedInstanceState.getString(EXTRA_TITLE);
- }
- if (getSupportActionBar() != null) {
- getSupportActionBar().setTitle(mTitle);
- }
- mDefaultRadioButton.setChecked(true);
- // RadioGroup listener
- radioLanguages.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(RadioGroup group, int checkedId) {
- // This will get the radiobutton that has changed in its check state
- RadioButton checkedRadioButton = group.findViewById(checkedId);
- // This puts the value (true/false) into the variable
- boolean isChecked = checkedRadioButton.isChecked();
- // If the radiobutton that has changed in check state is now checked...
- if (isChecked) {
- // Change Language Settings
- switch (checkedRadioButton.getId()) {
- // Indonesia
- case R.id.radio_lang_id:
- Preference.setLanguageSetting(getBaseContext(), "in");
- break;
- // Inggris (United States)
- case R.id.radio_lang_en:
- Preference.setLanguageSetting(getBaseContext(), "en_US");
- break;
- }
- finish();
- }
- }
- });
- }
- // Menyimpan title dan juga RadioButton yang dicek, pada saat perubahan orientasi layar
- @Override
- protected void onSaveInstanceState(Bundle outState) {
- super.onSaveInstanceState(outState);
- outState.putString(EXTRA_TITLE, mTitle);
- outState.putInt(EXTRA_DEFAULT_RADIO_BUTTON, mDefaultRadioButton.getId());
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement