Langue

Bidi.GetVisualRun(Int32) Méthode

Définition

Obtenez un BidiRun objet en fonction de son index.

[Android.Runtime.Register("getVisualRun", "(I)Landroid/icu/text/BidiRun;", "GetGetVisualRun_IHandler", ApiSince=29)]
public virtual Android.Icu.Text.BidiRun? GetVisualRun(int runIndex);
[<Android.Runtime.Register("getVisualRun", "(I)Landroid/icu/text/BidiRun;", "GetGetVisualRun_IHandler", ApiSince=29)>]
abstract member GetVisualRun : int -> Android.Icu.Text.BidiRun
override this.GetVisualRun : int -> Android.Icu.Text.BidiRun

Paramètres

runIndex
Int32

est le nombre de l’exécution dans l’ordre visuel, dans la plage [0..countRuns()-1].

Retours

objet BidiRun contenant les détails de l’exécution. La direction de l’exécution est LTR==0 ou RTL==1, jamais MIXED.

Attributs

Remarques

Obtenez un BidiRun objet en fonction de son index. Les méthodes BidiRun peuvent être utilisées pour récupérer le début logique, la longueur et le niveau de l’exécution, qui peuvent être même pour une exécution LTR ou impaire pour une exécution RTL. Dans une exécution RTL, le caractère au début logique se trouve visuellement à droite de l’exécution affichée. La longueur est le nombre de caractères dans l’exécution.

countRuns() est normalement appelé avant la récupération des exécutions.

Exemple :

Bidi bidi = new Bidi();
             String text = "abc 123 DEFG xyz";
             bidi.setPara(text, Bidi.RTL, null);
             int i, count=bidi.countRuns(), logicalStart, visualIndex=0, length;
             BidiRun run;
             for (i = 0; i &lt; count; ++i) {
                 run = bidi.getVisualRun(i);
                 logicalStart = run.getStart();
                 length = run.getLength();
                 if (Bidi.LTR == run.getEmbeddingLevel()) {
                     do { // LTR
                         show_char(text.charAt(logicalStart++), visualIndex++);
                     } while (--length &gt; 0);
                 } else {
                     logicalStart += length;  // logicalLimit
                     do { // RTL
                         show_char(text.charAt(--logicalStart), visualIndex++);
                     } while (--length &gt; 0);
                 }
             }

Notez que dans les exécutions de droite à gauche, le code comme celui-ci place la deuxième substitution avant les premiers (ce qui est généralement une mauvaise idée) et la combinaison de caractères avant les caractères de base.

L’utilisation de {@link #writeReordered}, éventuellement avec l’option {@link #KEEP_BASE_COMBINING} , peut être prise en compte pour éviter ces problèmes.

Java documentation pour android.icu.text.Bidi.getVisualRun(int).

Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.

S’applique à