Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.64 KB | None | 0 0
  1. package com.example.jetpackpromoviecatalogue.activities;
  2.  
  3. import android.content.res.Configuration;
  4. import android.os.Build;
  5. import android.os.Bundle;
  6. import android.widget.RadioButton;
  7. import android.widget.RadioGroup;
  8.  
  9. import com.example.jetpackpromoviecatalogue.Preference;
  10. import com.example.jetpackpromoviecatalogue.R;
  11.  
  12. import java.util.Locale;
  13.  
  14. public class LanguageSettingsActivity extends BaseActivity {
  15.     private final String EXTRA_TITLE = "extra_title";
  16.     private final String EXTRA_DEFAULT_RADIO_BUTTON = "extra_default_radio_button";
  17.     private String mTitle;
  18.     private RadioButton mDefaultRadioButton;
  19.  
  20.     @Override
  21.     protected void onCreate(Bundle savedInstanceState) {
  22.         super.onCreate(savedInstanceState);
  23.         setContentView(R.layout.activity_language_settings);
  24.  
  25.         RadioGroup radioLanguages = findViewById(R.id.radio_languages);
  26.  
  27.         if (savedInstanceState == null) {
  28.             mTitle = getResources().getString(R.string.change_language_title);
  29.  
  30.             // Check bahasa yang digunakan pada perangkat
  31.             Configuration config = getResources().getConfiguration();
  32.             Locale locale = Build.VERSION.SDK_INT >= 24 ? config.getLocales().get(0) : config.locale;
  33.  
  34.             // Default RadioButton Checked
  35.             switch (locale.toString()) {
  36.                 case "in_ID":
  37.                 case "in":
  38.                     mDefaultRadioButton = findViewById(R.id.radio_lang_id);
  39.                     break;
  40.                 default:
  41.                     mDefaultRadioButton = findViewById(R.id.radio_lang_en);
  42.                     break;
  43.             }
  44.         } else {
  45.             // Restore RadioButton Checked, Title
  46.             mDefaultRadioButton = findViewById(savedInstanceState.getInt(EXTRA_DEFAULT_RADIO_BUTTON));
  47.             mTitle = savedInstanceState.getString(EXTRA_TITLE);
  48.         }
  49.  
  50.         if (getSupportActionBar() != null) {
  51.             getSupportActionBar().setTitle(mTitle);
  52.         }
  53.         mDefaultRadioButton.setChecked(true);
  54.  
  55.         // RadioGroup listener
  56.         radioLanguages.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
  57.             @Override
  58.             public void onCheckedChanged(RadioGroup group, int checkedId) {
  59.                 // This will get the radiobutton that has changed in its check state
  60.                 RadioButton checkedRadioButton = group.findViewById(checkedId);
  61.                 // This puts the value (true/false) into the variable
  62.                 boolean isChecked = checkedRadioButton.isChecked();
  63.                 // If the radiobutton that has changed in check state is now checked...
  64.                 if (isChecked) {
  65.                     // Change Language Settings
  66.                     switch (checkedRadioButton.getId()) {
  67.                         // Indonesia
  68.                         case R.id.radio_lang_id:
  69.                             Preference.setLanguageSetting(getBaseContext(), "in");
  70.                             break;
  71.                         // Inggris (United States)
  72.                         case R.id.radio_lang_en:
  73.                             Preference.setLanguageSetting(getBaseContext(), "en_US");
  74.                             break;
  75.                     }
  76.                     finish();
  77.                 }
  78.             }
  79.         });
  80.     }
  81.  
  82.     // Menyimpan title dan juga RadioButton yang dicek, pada saat perubahan orientasi layar
  83.     @Override
  84.     protected void onSaveInstanceState(Bundle outState) {
  85.         super.onSaveInstanceState(outState);
  86.  
  87.         outState.putString(EXTRA_TITLE, mTitle);
  88.         outState.putInt(EXTRA_DEFAULT_RADIO_BUTTON, mDefaultRadioButton.getId());
  89.     }
  90. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement