2016-09-08 1 views
0

Ich versuche, hebräischen und normalen Text gemischt anzuzeigen, kommt der Text aus einer SQLite-Datenbank und wird in einer ListView angezeigt, die aus meiner Datenbank im Ordner Assets abgerufen wird.Hebräisch und normaler Text wird nicht richtig angezeigt

Ich möchte folgendes anzuzeigen:.

‚אנא אנא - Ek ist, war sal wees Wie Ek ist, war sal wees“

aber es wird wie folgt angezeigt:

“.Ek ist, war sal wees Wie Ek ist, war sal Wees - אנא אנא‘

Wenn der hebräischen Text zwischen anderen nicht ist rmal Text seiner feinen wie:

‚, sagt er אנא אנא - Ich bin, so war sein, wer ich bin, war, soll sein„

Der Text wird, wenn die Listview-Element beginnt nur gemischt. mit Hebräisch.

Ich habe versucht:.

'< \ U + 200f> אנא אנא < \ U + 200f> - Ek ist, war sal wees Wie Ek ist, war sal wees“

'< \ U200f> אנא אנא < \ U200f> - Ek ist, war sal wees Wie Ek ist, war sal wees „

.‚\ U200f אנא אנא \ U200f - Ek ist, war sal wees Wie Ek ist, war, sal wes. "

‚(\ U200f) אנא אנא (\ U200f.) - Ek ist, war sal wees Wie Ek ist, war sal wees“

'< \ U + 202b> אנא אנא < \ U + 202b > - Ek ist, war sal wees Wie Ek ist, war sal wees „

'< \ U202b> אנא אנא < \ U202b> -. Ek ist, war sal wees Wie Ek ist, war sal wees .“

‚\ U202b אנא אנא \ U202b -. Ek ist, war sal wees Wie Ek ist, war sal wees“

‚(\ U202b) אנא אנא (\ U202b) - Ek ist, war sal wees Wie Ek ist, war sal wees „

'< \ U + 202e> אנא אנא < \ U + 202e> -. Ek ist, war, sal wees Wie Ek ist, war sal wees „

'< \ U202e> אנא אנא < \ U202e> - Ek ist, war sal wees Wie Ek ist, war sal wees.“.

‚\ U202e אנא אנא \ U202e - Ek ist, war sal wees Wie Ek ist, war sal wees„

. ‚(\ U202e) אנא אנא (\ U202e) - Ek ist, war sal wees Wie Ek ist, war, sa Ich weiß.“

Aber alles wird wie mit den Codes angezeigt: (Ich möchte nicht die Codes sehen)

'< \ U + 200f> אנא אנא < \ U + 200f> - Ek ist , war, sal wes Wie Ek ist, war, sal wees. "

Ive versuchte android: supportsRtl =" wahr "im Manifest, dies betrifft nur die Textausrichtung in meinem Fall und nicht die Texte.

Antwort

1

Sooo ... Diese schließlich für mich gearbeitet ....

textview.setTextDirection(View.TEXT_DIRECTION_LTR); 

Bitte beachten Sie, dass mein Problem, wie ich war, sagte, Streicher Im Lesen von Daten aus einer Datenbank und nicht angezeigt wird, Dieser Code erzwingt also das Lesen aller Daten von links nach rechts, wenn ich diese Zeile nicht verwende, nimmt er die hebräischen Zeichen als RTL-Text auf und möchte das gesamte Ergebnis als RTL anzeigen.

Vielen Dank für die Hilfe! Ich hatte viel zu lesen und lernte dabei!

-1
android:supportsRtl="true" 

Bedeutet, Sie wollen von rechts nach links Unterstützung für Arabisch, Hebräisch wie Sprache. das beginnt mit RTL Von rechts nach links, wenn System diese Sprache auf Hebräisch bekommt, beginnt es mit rechts. Wie ich schon erwähnt habe, müssen Sie definieren, dass Sie wirklich RTL-Unterstützung in Ihrer App benötigen. Ansonsten bitte android:supportsRtl="false" so einstellen, dass der Start von links nach rechts erfolgt.

+0

Es betrifft nur den Text, den ich an bestimmten Stellen eingestellt habe, die von der rechten Seite der Seite zu lesen begonnen hat, um nach links zu verschieben, hat keinen Einfluss auf die Datenrichtung – FDupie

+0

Bitte lesen Sie meine vollständig bearbeiteten (genauer) Beitrag über – FDupie

2

Das Problem besteht darin, dass Sie einen RTL- und einen LTR-Text in derselben Zeichenfolge mischen. Das System betrachtet die anzuzeigende Zeichenfolge und sieht, dass sie mit hebräisch beginnt. Also startet es im RTL-Modus. Es sieht dann englischen Text. Also wechselt es zu LTR. Das Ergebnis ist, was Sie sehen. Sie müssen explizite Unicode-ltr- und rtl-Markierungen einfügen, wenn Sie solche Sprachen mischen, um sicherzustellen, dass sie korrekt behandelt werden. Informationen zu den Marken finden Sie unter https://en.wikipedia.org/wiki/Left-to-right_mark.

+0

Die gleiche Antwort wie unten: Ich denke, es funktioniert perfekt für eine Zeichenfolge, aber ich importiere Daten aus einer Datenbank, also wenn ich den Code vor dem Text in der DB setzt, zeigt es das Ergebnis mit dem Code davor – FDupie

+0

Bitte sehen meine komplett editierten (genauer gesagt) Beitrag über – FDupie

0

Siehe Antwort hier ....

Ted Hopp answer

ich die \ u200e bin mit für Recht

in string.xml

nehmen die Zeichenfolge nach links

<string name="Yourstring">\u200e שלום</string> 


TextView text2=(TextView)findViewById(R.id.text2); 

String str= getResources().getString(R.string.Yourstring)+" is the same as hello"; 
text2.setText(str); 

Die r RGEBNIS wie Sie

enter image description here

wollen, wie Sie, wenn Sie für Datenbank wünschen möchte ich mit der Array-Daten einige Demo am Hinzufügen Sie diese Art der Arbeit mit Datenbankwert tun

String[] str_array={"שלום is the same as hello","שלום is the same as hello","שלום is the same as hello","שלום is the same as 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); 



     String str=""; 

     for(int i=0;i<str_array.length;i++) 
     { 
      if(i==0) 
      { 

       // before text you want than do this 
       text1.setText(str.concat("\u200e")+str_array[i]); 
      } 
      else if(i==1) 
      { 
       // add this for end of string 

       text2.setText(str_array[i].concat("\u200e")); 
      } 
      else if(i==2) 
      { 
      // before text you want than do this 
       text3.setText(str.concat("\u200e")+str_array[i]); 
      } 
      else if(i==3) 
      { 
      // before text you want than do this 
       text4.setText(str.concat("\u200e")+str_array[i]); 
      } 
     } 

Das Ergebnis

enter image description here

+0

Ich denke, es funktioniert perfekt für eine Zeichenfolge, aber ich importiere Daten aus einer Datenbank, so wenn ich den Code vor dem Text in der DB legt es das Ergebnis mit dem Code vor davon – FDupie

+0

können Sie den \ u200e mit dem Datenbankwert hinzufügen .... –

+0

@saini ca Bitte erklären Sie mir, wie Sie es tun – FDupie

Verwandte Themen