`
407827531
  • 浏览: 1073901 次
  • 性别: Icon_minigender_1
  • 来自: 厦门
社区版块
存档分类
最新评论

Android强制为自身应用设置实现多语言

 
阅读更多

推荐安卓开发神器(里面有各种UI特效和android代码库实例)

每一个Activity中都要加: android:configChanges="locale"。

加 <supports-screens>是为了解决如下问题:

中文资源:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">你好,这是测试文字!</string>
<string name="app_name">LanguageTest</string>
<string name="btn_name">Change to English</string>
</resources>
英文资源:

<?xml version="1.0" encoding="utf-8"?>

<resources>
<string name="hello">Hello World, MainActivity!</string>
<string name="app_name">LanguageTest</string>
<string name="btn_name">变成中文</string>
</resources>
package com.hkp;

import java.util.Locale;

import android.app.Activity;
import android.content.Intent;
import android.content.res.Configuration;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;

import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
/** Called when the activity is first created. */

public String [] langes = {"zh","en"};
public static int count = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

TextView tv = (TextView) findViewById(R.id.hello1);
String str = this.getResources().getString(R.string.hello);
tv.setText(str);
Button btn = (Button)findViewById(R.id.btn_change);
btn.setText(R.string.btn_name);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String languageToLoad = langes[count++%2];
setLanguage(languageToLoad);
//刷新界面
Intent intent = new Intent();

intent.setClass(MainActivity.this,MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
MainActivity.this.startActivity(intent);
}
});
}

/**
* Set the Language of Application
*
* @param lang
* the language to set
*/
private void setLanguage(String lang) {
String languageToLoad = lang;
Locale locale = new Locale(languageToLoad);
Locale.setDefault(locale);
Configuration config = new Configuration();
config.locale = locale;
getBaseContext().getResources().updateConfiguration(config, null);
}
}

AndroidManifest.xml中:

<application android:icon="@drawable/icon" android:label="@string/app_name">

<activity android:name=".MainActivity"

android:label="@string/app_name"

android:configChanges="locale">

<intent-filter>

<action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />

</intent-filter>

</activity>



</application>

<supports-screens

android:smallScreens="true"

android:normalScreens="true"

android:largeScreens="true"

android:anyDensity="true"/>



分享到:
评论

相关推荐

    tts语音强制设置ttsset

    TTS服务的核心是语音引擎,Android系统通常预装了一些默认的引擎,如Google TTS或Samsung TTS,但用户也可以安装第三方引擎,如iSpeech、Nuance等,以获取更多语言、发音风格或速度选项。通过“tts语音强制设置...

    Android 资源与应用国际化

    **资源和国际化**是指利用Android框架中的资源系统来支持多语言和地区。这不仅包括文字的翻译,还包括货币符号、日期格式、数字格式等文化差异方面的考虑。 1. **介绍(Introduction)**:国际化...

    Android应用开发详解源代码

    本资源"Android应用开发详解源代码"提供了一套完整的源代码示例,帮助开发者深入探究Android平台的内部工作原理,提升自己的编程技能。这里我们将围绕Android应用开发的核心知识点进行详细阐述。 1. **Android SDK*...

    实战android应用 代码9

    【实战Android应用 代码9】这一主题聚焦于Android应用程序的开发实践,涵盖了多个关键知识点,旨在帮助开发者深入理解和掌握Android编程。在这个项目中,我们可能会遇到以下内容: 1. **Activity与Intent**: ...

    强制Android应用使用某个Locale的方法

    在Android应用开发中,国际化是一项重要的任务,它允许应用程序支持多种语言环境,为全球用户提供更好的体验。有时,出于测试或特定需求,我们可能需要强制应用使用特定的`Locale`,而不是让用户设备的默认设置来...

    android应用开发揭秘02

    总的来说,Android应用开发揭秘的第二部分将带你深入了解Android开发的基础知识,通过学习这些内容,你可以开始创建自己的Android应用,为用户提供有价值的功能和服务。在实践中,不断探索和学习新的API、设计模式和...

    新版Android开发教程.rar

    的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 • 应用程序框架 支持组件的重用与替换 • Dalvik Dalvik Dalvik Dalvik 虚拟机 专为移动设备优化 • ...

    AndroidJetpack,使用android jetpack的简单应用程序,使用kotlin并包含导航架构组件。.zip

    Kotlin是一种现代的、面向对象的编程语言,被Google宣布为Android开发的首选语言。本项目使用Kotlin,可以期待以下优点: - **空安全**:Kotlin强制类型检查,减少空指针异常。 - **表达力强**:简洁的语法,使...

    Android应用源码安卓PDF阅读器精简版项目.zip

    在本项目中,我们关注的是一个针对Android平台的PDF阅读器的源码实现,这是一个精简版的应用,可能包含了基本的PDF浏览、翻页、缩放等核心功能。通过分析这个项目的源码,我们可以深入理解Android应用开发中的关键...

    AppUpdate-一个简单、轻量、可随意定制 的Android版本更新库 .zip

    框架内部支持中/英文(其他语言只需要在对应的string.xml中取相同的名字即可)内部对话框背景图片、按钮支持自定义了查看版本中的Log只需要过滤AppUpdate开头的Tag重点: 如果没有设置downloadPath则默认为...

    Android权限表

    45. **GET_PACKAGE_SIZE**:应用可以计算其自身或其它应用的存储占用空间。 46. **GET_TASKS**:应用可以获取正在运行或最近运行的任务信息,了解应用的使用情况。 47. **GLOBAL_SEARCH**:内容提供者可以允许全局...

    基于Android平台软件开发方法的探究.pdf

    总的来说,Android应用开发是一个涉及多方面技术的综合过程,包括编程语言的掌握、开发环境的配置、权限管理的理解以及资源的合理使用。Android Studio作为主流的开发工具,极大地简化了这一过程,对于初学者来说,...

    android开发者文档

    开发人员需要考虑诸如界面设计、性能优化、多语言支持等方面,以确保应用程序既安全又易于使用。 通过以上介绍,我们不仅了解了Android操作系统的基本概念和工作原理,还深入探讨了如何构建安全、高效且用户友好的...

    Java4Android24_为什么用抽象类

    比如,多个类可能都有一个“打印”功能,通过抽象类定义一个抽象方法print(),各个子类只需重写这个方法,实现自己的打印逻辑。 3. **强制子类实现**:抽象类可以包含抽象方法,这些方法没有具体的实现。如果一个类...

    Android开发入门指南

    5. **Android运行库**:包括Dalvik虚拟机和一套与Java语言核心库兼容的核心库,每个应用都在自己的进程中运行,拥有独立的Dalvik虚拟机实例。 学习Android开发,首先需要搭建开发环境,安装Android Studio并配置SDK...

    Android

    Android应用由多个组件构成,包括Activity、Service、Broadcast Receiver等。这些组件之间通过Intent进行通信,实现数据交换和功能调用。 1. **Activity**:负责界面展示和用户交互。 2. **Service**:在后台运行长...

    eclipse android4.4.2源码

    ART使用预编译技术(AOT, Ahead-of-Time Compilation),在安装应用时就将DEX文件转换为机器语言,提升了运行效率。 2. **WebView优化**:对WebView进行了大量性能优化,包括更快的页面加载速度和内存管理改进,这...

    语言切换案例

    在Android开发中,实现语言切换是一...总的来说,Android的`Configuration`类提供了强大的灵活性,使得开发人员可以轻松地为用户提供多语言支持。通过理解和应用这些概念,你可以创建更加国际化和用户友好的应用程序。

Global site tag (gtag.js) - Google Analytics