android 实现应用内语言切换
来源:互联网 发布:网络播放器安装电视猫 编辑:程序博客网 时间:2024/06/05 20:37
android开发中经常需要实现各种语言的切换功能,网上也有一些解决方案,经本人测试都不算好用, 以下是我研究的解决方案,绝对对你有帮助.
Demo下载地址:http://download.csdn.net/detail/qq_26420489/9392952
方法/步骤
1,strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">MoreLanguageSwitch</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string>
<string name="app_name_en">my app</string>
<string name="app_name_zh">去旅游网</string>
</resources>2. MainActivity
package com.example.morelanguageswitch;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class MainActivity extends Activity implements OnClickListener {
private Button cnBtn;
private Button enBtn;
private TextView appNameText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cnBtn = (Button) findViewById(R.id.cnBtn);
enBtn = (Button) findViewById(R.id.enbtn);
appNameText = (TextView) findViewById(R.id.appNameText);
appNameText.setText(Tools.getStringResId(this, "app_name",
Tools.getLanguage(this)));
cnBtn.setOnClickListener(this);
enBtn.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public void onClick(View v) {
SharedPreferences sp = getSharedPreferences("language",
Activity.MODE_PRIVATE);
SharedPreferences.Editor editor = sp.edit();
switch (v.getId()) {
case R.id.cnBtn:
editor.putString("language", "zh");
editor.commit();
refresh(this);
break;
case R.id.enbtn:
editor.putString("language", "en");
editor.commit();
refresh(this);
break;
default:
break;
}
}
private void refresh(Context context) {
finish();
Intent intent = new Intent(context, context.getClass());
startActivity(intent); // overridePendingTransition(R.anim.new_dync_in_from_right,
// R.anim.new_dync_out_to_left); } }
}
}3.Tools
package com.example.morelanguageswitch;
import java.util.Locale;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.util.Log;
public class Tools {
public static int getStringResId(Context context, String name,
String language) {
return context.getResources().getIdentifier(name + "_" + language,
"string", context.getPackageName());
}
public static String getLanguage(Context context) {
SharedPreferences sp = context.getSharedPreferences("language",
Activity.MODE_PRIVATE);
String language = sp.getString("language", "");
if (language == null || language.equals("")) {
language = Locale.getDefault().getLanguage();
}
Log.v("message", "language new :" + language);
return language;
}
}4.activity_main.xml
- <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" >
<TextView
android:id="@+id/helloText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />
<TextView
android:id="@+id/appNameText"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/cnBtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="CN" />
<Button
android:id="@+id/enbtn"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="EN" />
</LinearLayout> - 注:Demo下载地址:http://download.csdn.net/detail/qq_26420489/9392952点击打开链接
- Android应用内语言切换实现
- Android应用内语言切换实现
- Android应用内语言切换实现
- Android应用内语言切换实现
- Android应用内语言切换实现
- android 实现应用内语言切换
- Android 应用内切换语言
- android 应用内切换语言
- android 应用内切换语言
- android 应用内语言切换
- android 应用内切换语言
- android 应用内切换语言
- Android多语言,应用内切换语言
- Android应用内切换应用语言
- Android应用内即时切换语言
- android 2种切换语言方式:应用内切换和随系统而切换 代码实现重启应用
- 应用内切换语言
- 新应用的知识整理-Android studio中应用多语言支持及应用内语言切换的实现
- spring框架(IOC)的理解
- Ubuntu15.10 禁用自带的nouveau驱动(安装NVIDIA驱动)
- Best Time to Buy and Sell Stock IV(DP解法,o(kn)时间,o(k)空间)
- 使用NSURLSession程序退出后继续下载
- 翻书动画实现
- android 实现应用内语言切换
- Myeclipse 配置了Tomcat内存但是不生效
- Java 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串
- 围绕中心点进行旋转
- Egret)引擎工作原理
- 每天学点Python之collections
- UIScrollView,UIPageControl,UIImageView 实现图片轮播的效果
- BP算法浅谈(Error Back-propagation)
- LINUX 命令行变成-bash-4.2$