注意
您可以从github repo下载源代码
将当前语言电台输入标记为已选中
然后,您需要将您的区域设置更改标记/状态保存在其中
SharedPreferences
样本代码请 按照下列步骤
创建一个班级名称
PrefManager
import android.content.Context;import android.content.SharedPreferences;public class PrefManager { private SharedPreferences.Editor editor; private Context mContext; private SharedPreferences prefs; private final String LANGUAGE = "language"; private final String PREF = "user_data"; public PrefManager(Context mContext) { this.mContext = mContext; } public String getLanguage() { this.prefs = this.mContext.getSharedPreferences(PREF, 0); return this.prefs.getString(LANGUAGE, "en"); } public void setLanguage(String language) { this.editor = this.mContext.getSharedPreferences(PREF, 0).edit(); this.editor.putString(LANGUAGE, language); this.editor.apply(); }}现在在您的代码中添加以下代码/条件
settingsActivity.java
public class JavaActivity extends AppCompatActivity { PrefManager prefManager; RadioButton radio_indo, radio_english; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_java); prefManager = new PrefManager(this); radio_indo = findViewById(R.id.radio_indo); radio_english = findViewById(R.id.radio_english); if (prefManager.getLanguage().equals("en")) { radio_english.setChecked(true); } else { radio_english.setChecked(true); } }}当用户选择另一个单选按钮时进行更改
- 当用户更改语言时,您需要对其进行更新
SharedPreferences
- 更改语言环境后,您需要重新启动或重新创建活动
注意:您应该使用
RadioGroup.onCheckedChangeListener()而不是
android:onClick="onRadioButtonClicked"
样本代码
public class JavaActivity extends AppCompatActivity { PrefManager prefManager; RadioButton radio_indo, radio_english; RadioGroup appLang; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_java); prefManager = new PrefManager(this); radio_indo = findViewById(R.id.radio_indo); radio_english = findViewById(R.id.radio_english); appLang = findViewById(R.id.appLang); if (prefManager.getLanguage().equals("en")) { radio_english.setChecked(true); } else { radio_english.setChecked(true); } appLang.setonCheckedChangeListener(new RadioGroup.onCheckedChangeListener() { @Override public void onCheckedChanged(RadioGroup radioGroup, int checkId) { switch (checkId) { case R.id.radio_indo: prefManager.setLanguage("id"); // you need to restart or recreate your activity after locale change break; case R.id.radio_english: prefManager.setLanguage("en"); // you need to restart or recreate your activity after locale change break; } } }); }}


