
一、创建不同语言的strings.xml
 
 按照上述步骤,建立 “简体” “繁体” “英文” 的strings.xml 
二、demo示例


1、工具类
public class LanguageUtils {
public static void switchLanguage(Context context, Locale locale) {
Resources res = context.getResources();
DisplayMetrics dm = res.getDisplayMetrics();
Configuration conf = res.getConfiguration();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
conf.setLocale(locale);
LocaleList localeList = new LocaleList(locale);
LocaleList.setDefault(localeList);
conf.setLocales(localeList);
} else {
conf.setLocale(locale);
}
res.updateConfiguration(conf, dm);
}
public static String getDefaultLanguage(Context context) {
Resources resources = context.getResources();
Configuration config = resources.getConfiguration();
Locale contextLocale = config.locale;
return contextLocale.toString();
}
}
2、MainActivity
Activity
public class MainActivity extends BaseAbstractActivity {
@BindView(R.id.id_tv_default_language)
TextView tvDefaultLanguage;
@BindView(R.id.id_btn_cn)
TextView btnCN;
@BindView(R.id.id_btn_hk)
TextView btnHK;
@BindView(R.id.id_btn_us)
TextView btnUS;
@BindView(R.id.id_btn_skip)
TextView btnSkip;
@Override
protected int getLayoutId() {
return R.layout.activity_main;
}
@Override
protected void init() {
tvDefaultLanguage.setText(LanguageUtils.getDefaultLanguage(getActivity()));
btnCN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LanguageUtils.switchLanguage(getActivity(), Locale.SIMPLIFIED_CHINESE);
actionActivity();
}
});
btnHK.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LanguageUtils.switchLanguage(getActivity(), Locale.TRADITIONAL_CHINESE);
actionActivity();
}
});
btnUS.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
LanguageUtils.switchLanguage(getActivity(), Locale.US);
tvDefaultLanguage.setText(LanguageUtils.getDefaultLanguage(getApplicationContext()));
actionActivity();
}
});
btnSkip.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(getActivity(), TestActivity.class));
}
});
}
public void actionActivity() {
Intent intent = new Intent(getActivity(), MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(intent);
}
@Override
protected BaseAbstractActivity getActivity() {
return this;
}
}
layout
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/id_tv_default_language"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:background="@android:color/darker_gray"
android:gravity="center_horizontal"
android:padding="30dp"
android:text=""
android:textColor="@android:color/white"
android:textSize="30dp" />
<TextView
android:id="@+id/id_btn_cn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:background="@android:color/black"
android:gravity="center_horizontal"
android:padding="30dp"
android:text="@string/STRING_01"
android:textColor="@android:color/white"
android:textSize="30dp" />
<TextView
android:id="@+id/id_btn_hk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:background="@android:color/black"
android:gravity="center_horizontal"
android:padding="30dp"
android:text="@string/STRING_02"
android:textColor="@android:color/white"
android:textSize="30dp" />
<TextView
android:id="@+id/id_btn_us"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:background="@android:color/black"
android:gravity="center_horizontal"
android:padding="30dp"
android:text="@string/STRING_03"
android:textColor="@android:color/white"
android:textSize="30dp" />
<TextView
android:id="@+id/id_btn_skip"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp"
android:background="@android:color/holo_blue_light"
android:gravity="center_horizontal"
android:padding="30dp"
android:text="skip"
android:textColor="@android:color/white"
android:textSize="30dp" />
</LinearLayout>
2、TestActivity
public class TestActivity extends BaseAbstractActivity {
@BindView(R.id.id_tv_show)
TextView tvShow;
@Override
protected int getLayoutId() {
return R.layout.act_test;
}
@Override
protected void init() {
}
@Override
protected BaseAbstractActivity getActivity() {
return this;
}
}
layout
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/id_tv_show"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="@string/STRING_00"
android:textSize="30dp" />
</RelativeLayout>
|