当前位置:  编程技术>移动开发
本页文章导读:
    ▪编纂多语言程序        编写多语言程序 (1)本地化字符串:1、建立本地化字符串文件:Add--New file--Mac os X--Resoure--选择Strings file:名称命名为:Localizable.strings2、建立对应的语言化文件:选中Localizable.strings--鼠.........
    ▪ 哪位高手用到过IntentService这个玩意,能否给一个应用场景        谁用到过IntentService这个玩意,能否给一个应用场景? 文档看的不够细,没有发现IntentService这个玩意。简单的看了下源码:   继承service的抽象类   abstract class IntentService extends Service  在onCreate.........
    ▪ java随机生成汉语言       java随机生成中文 import java.io.UnsupportedEncodingException; import java.util.Date; import java.util.Random; public class ChineseUtils { private static Random random = null; private static Random getRandomInstance() { if (random == null) .........

[1]编纂多语言程序
    来源: 互联网  发布时间: 2014-02-18
编写多语言程序
(1)本地化字符串:
1、建立本地化字符串文件:
Add--New file--Mac os X--Resoure--选择Strings file:名称命名为:Localizable.strings
2、建立对应的语言化文件:选中Localizable.strings--鼠标右键Get Info--选择General标签下的Make File Localizable--然后再切换到Generat标签下:可以看到列表下有个English,这个就默认的英文化文件。
我们再建立一个简体中文化文件:Add Localizable--弹出的下拉框里面有日语德语和法语的语言化文件,没有中文,可以自己输入zh_CN,选择add添加即可。
3、本地化语言:例如你想在中文下显示“您好”,在英文下显示“Hello”,
打开Localizable.strings下的English:添加这个键值对:"HELLO" = "Hello";//左边是你调用的变量,右边是输出的结果
打开Localizable.strings下的zh_CN:添加这个键值对:"HELLO" = "您好";
4、调用方法:
UILabel *lable = .....
label.text =  NSLocalizedString(@"HELLO", nil);
这样在中文环境下就显示您好,英文下显示为hello。
如果找不到对应的语言包则显示英文,除了这种情况:如果你调用label.text =  NSLocalizedString(@"HELLO", @“hello not found”);//当找不到对应语言包时候,会显示默认你输入的字符串@“hello not found“
5、如果你建立的不是默认的Localizable.strings,比如MyLanguage.strings,调用的时候用NSLocalizedStringFromTable(@"HELLO", @"MyLanguage",nil);
(2)本地化程序名称
1、建立InfoPlist.strings
2、按照上述方法同样添加对应的语言包
3、在你的语言包添加键值对:
English:CFBundleDisplayName = "HelloWorld";
zh_CN:CFBundleDisplayName = "世界你好";
//这样在中文环境下你的程序图标显示“世界你好”,英文下显示“HelloWorld”,如果找不到对应的语言包,则显示你Info.plist下的CFBundleDisplayName对应的名称

    
[2] 哪位高手用到过IntentService这个玩意,能否给一个应用场景
    来源: 互联网  发布时间: 2014-02-18
谁用到过IntentService这个玩意,能否给一个应用场景?

文档看的不够细,没有发现IntentService这个玩意。简单的看了下源码:

 

继承service的抽象类

 

abstract class IntentService extends Service

 在onCreate里面起了一个线程

 

HandlerThread thread = new HandlerThread("IntentService[" + mName + "]");
        thread.start();

 然后用thread的looper起了一个Handler

 

mServiceLooper = thread.getLooper();
mServiceHandler = new ServiceHandler(mServiceLooper);

 在onStart里面,将启动的Intent交给ServiceHandler处理

 

 @Override
    public void onStart(Intent intent, int startId) {
        Message msg = mServiceHandler.obtainMessage();
        msg.arg1 = startId;
        msg.obj = intent;
        mServiceHandler.sendMessage(msg);
    }

 

在ServiceHandler的handleMessage里面交给抽象方法onHandleIntent处理start的消息

 

@Override
        public void handleMessage(Message msg) {
            onHandleIntent((Intent)msg.obj);
            stopSelf(msg.arg1);
        }

protected abstract void onHandleIntent(Intent intent);

 

在onHandleIntent完了stopSelf

 

 

 

整个看下来是一个Service+Thread+handle的结合体,

Service:比Activity的被kill的级别低

Thread:不阻塞UI线程

Handle:队列式的消息循环

 

那这个玩意的使用场景会是什么样的?由于所有的任务都在同一个Thread looper里面来做,所以不符合多个数据同时请求的场景。最佳场景是做离线数据下载,把所有的任务都往这个Service里面扔就可以了。

 

 

 


    
[3] java随机生成汉语言
    来源: 互联网  发布时间: 2014-02-18
java随机生成中文
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Random;

public class ChineseUtils {
	private static Random random = null;

	private static Random getRandomInstance() {
		if (random == null) {
			random = new Random(new Date().getTime());
		}
		return random;
	}

	public static String getChinese() {
		String str = null;
		int highPos, lowPos;
		Random random = getRandomInstance();
		highPos = (176 + Math.abs(random.nextInt(39)));
		lowPos = 161 + Math.abs(random.nextInt(93));
		byte[] b = new byte[2];
		b[0] = (new Integer(highPos)).byteValue();
		b[1] = (new Integer(lowPos)).byteValue();
		try {
			str = new String(b, "GB2312");
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}
		return str;
	}

	public static String getFixedLengthChinese(int length) {
		String str = "";
		for (int i = length; i > 0; i--) {
			str = str + ChineseUtils.getChinese();
		}
		return str;
	}

	public static String getRandomLengthChiness(int start, int end) {
		String str = "";
		int length = new Random().nextInt(end + 1);
		if (length < start) {
			str = getRandomLengthChiness(start, end);
		} else {
			for (int i = 0; i < length; i++) {
				str = str + getChinese();
			}
		}
		return str;
	}

	public static void main(String args[]) {
		System.out.println(ChineseUtils.getChinese());
		System.out.println(ChineseUtils.getFixedLengthChinese(20));
		System.out.println(ChineseUtils.getRandomLengthChiness(2, 5));
	}
}

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android提高之多方向抽屉实现方法 iis7站长之家
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3