我有以下算法可以连接阿拉伯文本和英语文本
private String getFormatedArabicEnglishMessage (String [] parts) {
String retString = "";
for (int i = 0; i < parts.length; i++) {
if (MyServices2Utils.isProbablyArabic(parts[i]) == true) {
retString += "\u202B" + new String(" ") + "\u202C";
retString += "\u202B" + new String(parts[i].getBytes()) + "\u202C";
retString += "\u202B" + new String(" ") + "\u202C";
} else {
retString += " ";
retString += parts[i];
retString += " ";
}
}
return retString;
}
但并非在所有情况下都有效:
在默认语言环境== ar的情况下,我得到以下结果:
在默认语言环境==的情况下,我得到以下结果:
最佳答案
如果我理解正确,那么您的问题是,每当Locale
不是阿拉伯语时,append方法就会在右侧而非左侧添加文本,这是书写阿拉伯文字的方式(从右至左)。
如果这是问题所在,则必须检查Locale
,如果它不是阿拉伯语,则需要将此属性设置为TextView
或使用的任何内容:
android:textDirection="anyRtl"
有关更多信息,请参见this。