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