Android 希伯来文和普通文本未显示右侧
我试图混合显示希伯来语和普通文本,文本来自SQLite数据库,并显示在从我的数据库中的Assets文件夹中提取的listview中 我想显示以下内容: אנאאאא-Ek is,was,sal wees Wie Ek is,was,sal wees。” 但它会显示为: “.Ek是,是,sal wees Wie Ek是,是,sal wees-אאאאא” 当希伯来文文本介于其他普通文本之间时,其精细程度如下: “他说——我是,过去是,将来会是,过去是,将来会是。” 仅当listview项以希伯来语开头时,文本才会混淆。 我试过了: אנאאאא-Ek is,was,sal wees Wie Ek is,was,sal wees。” אנאאאא-Ek is,was,sal wees Wie Ek is,was,sal wees。” “\U200fאנאאנא\U200f-Ek是,是,sal wees Wie Ek是,是,是,sal wees。” “(\U200f)אאאנא(\U200f)-Ek is,was,sal wees Wie Ek is,was,sal wees。” אנאאאא-Ek is,was,sal wees Wie Ek is,was,sal wees。” אנאאאא-Ek is,was,sal wees Wie Ek is,was,sal wees。” “\U202bאנאאנאא\U202b-Ek is,was,sal wees Wie Ek is,was,sal wees。” “(\U202b)אאאנא(\U202b)-Ek is,was,sal wees Wie Ek is,was,sal wees。” אנאאאא-Ek is,was,sal wees Wie Ek is,was,sal wees。” אנאאאא-Ek is,was,sal wees Wie Ek is,was,sal wees。” “\U202eאנאאנא\U202e-Ek是,是,sal wees Wie Ek是,是,是,sal wees。” “(\U202e)אאאנא(\U202e)-Ek is,was,sal wees Wie Ek is,was,sal wees。” 但所有内容都会显示如下代码: (我不想看到代码) אנאאאא-Ek is,was,sal wees Wie Ek is,was,sal wees。” 我在清单中尝试了android:supportsRtl=“true”,在我的例子中,这只会影响文本对齐,而不会影响文本Android 希伯来文和普通文本未显示右侧,android,sqlite,android-studio,right-to-left,hebrew,Android,Sqlite,Android Studio,Right To Left,Hebrew,我试图混合显示希伯来语和普通文本,文本来自SQLite数据库,并显示在从我的数据库中的Assets文件夹中提取的listview中 我想显示以下内容: אנאאאא-Ek is,was,sal wees Wie Ek is,was,sal wees。” 但它会显示为: “.Ek是,是,sal wees Wie Ek是,是,sal wees-אאאאא” 当希伯来文文本介于其他普通文本之间时,其精细程度如下: “他说——我是,过去是,将来会是,过去是,将来会是。” 仅当listview项以希伯来语
android:supportsRtl="true"
意思是你想要从右到左支持阿拉伯语,类似希伯来语的语言。从右到左的RTL开始,当系统得到希伯来语时,它从右开始。根据我的建议,你需要定义你的应用程序中是否真的需要RTL支持。否则,请将android:supportsRtl=“false”设置为从左到右开始
意思是你想要从右到左支持阿拉伯语,类似希伯来语的语言。从右到左的RTL开始,当系统得到希伯来语时,它从右开始。根据我的建议,你需要定义你的应用程序中是否真的需要RTL支持。否则,请将android:supportsRtl=“false”设置为从左到右开始 问题是您在同一个字符串中混合了rtl和ltr文本。系统查看要显示的字符串,并查看它以希伯来语开头。所以它以RTL模式启动。然后它会看到英文文本。所以它切换到LTR。结果就是你所看到的。在混合这样的语言时,需要使用显式的unicode ltr和rtl标记,以确保正确处理它。有关ltr标记的信息,请参阅。问题在于您在同一字符串中混合了rtl和ltr文本。系统查看要显示的字符串,并查看它以希伯来语开头。所以它以RTL模式启动。然后它会看到英文文本。所以它切换到LTR。结果就是你所看到的。在混合这样的语言时,需要使用显式的unicode ltr和rtl标记,以确保正确处理它。有关ltr标记的信息,请参见。请参见此处的答案 我将\u200e用于从右向左 将字符串放入string.xml中
\u200eשלום
TextView text2=(TextView)findViewById(R.id.text2);
String str=getResources().getString(R.String.Yourstring)+“与hello相同”;
text2.setText(str);
结果如你所愿
正如您所希望的,如果您想要数据库,我将添加一些带有数组数据的演示,您可以使用数据库值执行这些类型的工作
String[]struםu数组={“שלום与hello相同”,“שלום与hello相同”,“שם与hello相同”};
TextView text1=(TextView)findViewById(R.id.text1);
TextView text2=(TextView)findViewById(R.id.text2);
TextView text3=(TextView)findViewById(R.id.text3);
TextView text4=(TextView)findViewById(R.id.text4);
字符串str=“”;
对于(inti=0;i请参见此处的答案…)
我将\u200e用于从右向左
将字符串放入string.xml中
\u200eשלום
TextView text2=(TextView)findViewById(R.id.text2);
String str=getResources().getString(R.String.Yourstring)+“与hello相同”;
text2.setText(str);
结果如你所愿
正如您所希望的,如果您想要数据库,我将添加一些带有数组数据的演示,您可以使用数据库值执行这些类型的工作
String[]struםu数组={“שלום与hello相同”,“שלום与hello相同”,“שם与hello相同”};
TextView text1=(TextView)findViewById(R.id.text1);
TextView text2=(TextView)findViewById(R.id.text2);
TextView text3=(TextView)findViewById(R.id.text3);
TextView text4=(TextView)findViewById(R.id.text4);
字符串str=“”;
对于(inti=0;iSooo。。。
这终于对我起作用了
textview.setTextDirection(View.TEXT_DIRECTION_LTR);
请注意,正如我所说,我的问题是,我从数据库中读取数据,而不是显示字符串,所以这段代码强制从左到右读取所有数据,如果我不使用这一行,它将希伯来文字符作为RTL文本,并希望将整个结果显示为RTL
谢谢你的帮助!在这个过程中我读了很多书,学到了很多东西!所以。。。
这终于对我起作用了
textview.setTextDirection(View.TEXT_DIRECTION_LTR);
请不要
textview.setTextDirection(View.TEXT_DIRECTION_LTR);