用TextView设置希伯来语文本的Android设置?

我正在从string资源的TextView中设置文本。 通常情况下,希伯来语以从右到左的格式工作。 当我设置一个文本,它在LG,三星,索尼手机设置文本从右到左的格式,但在macros达电不起作用。 它在HTC中以左至右格式工作。 即使我把Gravity设置为Java文件中的TextView。

TextView中的文本应该根据屏幕大小进行跨度。 例如,如果它是320 x 480那么它显示在4行,但如果它是银河标签那么可能有2行。

这是我的代码片段:

在Java中:

private TextView mVersionInfo, mVersionDescriptionOne, mVersionDescriptionTwo, mVersionDescriptionThree; mVersionInfo = (TextView)findViewById(R.id.VersionInfo); mVersionDescriptionOne = (TextView)findViewById(R.id.VersionDesc1); mVersionDescriptionTwo = (TextView)findViewById(R.id.VersionDesc2); mVersionDescriptionThree = (TextView)findViewById(R.id.VersionDesc3); mVersionDescriptionOne.setGravity(Gravity.RIGHT); mVersionDescriptionTwo.setGravity(Gravity.RIGHT); mVersionDescriptionThree.setGravity(Gravity.RIGHT); 

在XML中:

 <TextView android:id="@+id/VersionDesc1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/versiondesc1" android:textColor="#000000" android:layout_marginTop="5dip" android:gravity="right" android:layout_alignParentRight="true" android:layout_marginRight="10dip" android:layout_below="@+id/Share" android:textSize="13sp" android:layout_alignRight="@+id/Body" /> <TextView android:id="@+id/VersionDesc2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/versiondesc2" android:textColor="#000000" android:layout_alignParentRight="true" android:layout_marginRight="10dip" android:layout_below="@+id/VersionDesc1" android:textSize="13sp" android:layout_marginTop="5dip" android:gravity="right" android:layout_alignRight="@+id/Body" /> <TextView android:id="@+id/VersionDesc3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/versiondesc3" android:textColor="#000000" android:layout_alignParentRight="true" android:layout_marginRight="10dip" android:layout_below="@+id/VersionDesc2" android:textSize="13sp" android:layout_marginTop="5dip" android:gravity="right" android:layout_alignRight="@+id/Body" /> 

在string资源:

 <string name="versiondesc1">האפליקציה מתחברת לאתר הספק הסלולרי כדי להציג את מצב החשבון. לעיתים, כשאתר הספק איננו עובד תקין לא יהיה ניתן לקבל מידע. באם אתר הספק ישתנה האפליקציה עלולה להפסיק לעבוד. במצב כזה האפליקציה תחזור לעבודה תקינה מיד לאחר שאנו נתאים את שרת התוכנה שלנו לשינויים.</string> <string name="versiondesc2">הערה: אנחנו לא מייצגים את חברות הסלולר ולא נמצאים איתן בקשר מסוג כלשהו!</string> <string name="versiondesc3">אם נתקלת בבעיה, השתמש/י בכפתור יצירת קשר על מנת שנוכל לפתור אותה. נשמח לקבל כל משוב על האפליקציה.</string> 

我的代码有什么问题?

任何人使用另一种语言,请在这里指导我。

谢谢。

重力只会影响alignment,并不会设置文本的基本方向。 它适用于某些设备,而不是其他设备,可能是字体问题,也可能是操作系统版本问题。 尝试在文本的开头添加一个右向左标记字符(\ u200F)。 这可能有助于在HTC上的显示,并不会损害已经工作的设备上的任何东西。

这里是我的希伯来stringxml的一个例子,感谢Ted Hopp的回答:

您需要在导致问题的char之前添加'\ u200e':

 <string name="basic_text1">המר על תוצאת המשחק\u200e:</string> 

结果将是:

  :המר על תוצאת המשחק