当前位置: 编程技术>移动开发
本页文章导读:
▪编纂多语言程序 编写多语言程序
(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对应的名称
(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)); } }
最新技术文章: