国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

詳解Android更改APP語言模式的實現過程

2019-12-12 05:42:40
字體:
來源:轉載
供稿:網友

一、效果圖

二、描述

更改Android項目中的語言,這個作用于只用于此APP,不會作用于整個系統

三、解決方案

(一)布局文件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  xmlns:tools="http://schemas.android.com/tools"  android:layout_width="match_parent"  android:layout_height="match_parent"  android:orientation="vertical"  android:padding="20dp" >  <TextView    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="@string/hellow" />  <Button    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:onClick="changeLanguage"     android:text="語言切換" /></LinearLayout>

(二)MainActivity主頁面

package com.example.chinesepage;import java.util.Locale;import android.app.Activity;import android.content.Intent;import android.content.res.Configuration;import android.content.res.Resources;import android.os.Bundle;import android.util.DisplayMetrics;import android.view.View;import android.widget.Toast;public class MainActivity extends Activity {  @Override  protected void onCreate(Bundle savedInstanceState) {    super.onCreate(savedInstanceState);    setContentView(R.layout.activity_main);  }  /**   * 點擊按鈕,更換語言   *    * @param view   */  public void changeLanguage(View view) {    Resources resources = getResources();    Configuration configuration = resources.getConfiguration(); // 獲取資源配置    if (configuration.locale.equals(Locale.CHINA)) { // 判斷當前語言是否是中文      configuration.locale = Locale.ENGLISH; // 設置當前語言配置為英文    } else {      configuration.locale = Locale.CHINA; // 設置當前語言配置為中文    }    DisplayMetrics metrics = new DisplayMetrics();    resources.updateConfiguration(configuration, metrics); // 更新配置文件    sendBroadcast(new Intent("language")); // 發送廣播,廣播接受后重新開啟此Activtiy以重新初始化界面語言.//    Intent intent = new Intent(MainActivity.this, MainActivity.class); //或者可以直接跳轉MainActivity//    intent.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION); //去除掉跳轉的動畫,讓用戶看起來好像沒有跳轉的感覺//    startActivity(intent);    finish();  }}

(三)ChangeReceiver廣播類

package com.example.chinesepage;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;/** * 自定義廣播類 語言改變后重啟Activity *  * @author asus *  */public class ChangeReceiver extends BroadcastReceiver {  private Intent mIntent;  @Override  public void onReceive(Context context, Intent intent) {    mIntent = new Intent(context, MainActivity.class);    mIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);    context.startActivity(mIntent);  }}

(四)在Res下創建Values-en文件夾,復制String.xml,并且把里面的中文改成英文,實現國際化.

values/strings.xml

<resources>  <string name="app_name">語言切換</string>  <string name="hello_world">你好,World!</string>  <string name="action_settings">設置</string>  <string name="hellow">你好</string></resources>

values-en/strings.xml

<resources>  <string name="app_name">ChinesePage</string>  <string name="hello_world">Hello world!</string>  <string name="action_settings">Settings</string>  <string name="hellow">Hellow</string></resources>

(五)注冊廣播(這個別忘了~)

 <receiver android:name="com.example.chinesepage.ChangeReceiver" >      <intent-filter>        <action android:name="language" />      </intent-filter>    </receiver>

總結

以上就是詳解Android更改APP語言模式的實現過程的全部內容,希望對大家開發Android有所幫助,如果有疑問歡迎留言討論。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 于田县| 阜新| 大石桥市| 黑水县| 沅陵县| 汉川市| 沈丘县| 襄樊市| 大兴区| 左云县| 邹城市| 宁南县| 准格尔旗| 蒲江县| 海南省| 诸暨市| 资阳市| 乐亭县| 延川县| 巴彦县| 会昌县| 丹东市| 华蓥市| 小金县| 汶上县| 铜陵市| 双江| 三原县| 赫章县| 安宁市| 吴旗县| 南平市| 石阡县| 安泽县| 阿拉善右旗| 云阳县| 大渡口区| 白山市| 隆子县| 松阳县| 利川市|