BidiFormatter Klasse

Definition

Hilfsklasse zum Formatieren von Text für die Anzeige in einem potenziell entgegengesetzten Direktionalitätskontext ohne Garbling.

[Android.Runtime.Register("android/text/BidiFormatter", DoNotGenerateAcw=true)]
public sealed class BidiFormatter : Java.Lang.Object
[<Android.Runtime.Register("android/text/BidiFormatter", DoNotGenerateAcw=true)>]
type BidiFormatter = class
    inherit Object
Vererbung
BidiFormatter
Attribute

Hinweise

Hilfsklasse zum Formatieren von Text für die Anzeige in einem potenziell entgegengesetzten Direktionalitätskontext ohne Garbling. Die Richtung des Kontexts wird bei der Formatierungserstellung festgelegt, und die Richtungsalität des Texts kann entweder geschätzt oder übergeben werden, wenn bekannt.

Um Versionen zu unterstützen, die niedriger sind als android.os.Build.VERSION_CODES#JELLY_BEAN_MR2, können Sie die Klasse der Supportbibliothek androidx.core.text.BidiFormatter verwenden.

Diese APIs bieten die folgenden Funktionen:

1. Bidi Wrapping When text in one language is mixed into a document in another, opposite-directionality language, z.B. when an English business name is embedded in some Hebräisch text, both the inserted string and the text umgebung it may be displayed in fälschlicherweise, wenn die eingefügte Zeichenfolge explizit von dem umgebenden Text in einem "Wrapper" getrennt ist, der:

- Deklariert seine Richtungsalität, sodass die Zeichenfolge richtig angezeigt wird. Dies kann in Unicode-Bidi-Formatierungscodes mit #unicodeWrap ähnlichen Methoden erfolgen.

- Isoliert die Richtungsalität der Zeichenfolge, sodass sie sich nicht unuell auf den umgebenden Inhalt auswirkt. Derzeit kann dies nur mit unsichtbaren Unicode-Zeichen derselben Richtung wie der Kontext (LRM oder RLM) zusätzlich zur obigen Richtungsdeklaration erfolgen, wodurch die Richtungsalität auf die des Kontexts zurückgesetzt wird. Das "Zurücksetzen" muss möglicherweise an beiden Enden der Zeichenfolge erfolgen. Ohne "Zurücksetzen" nach der Zeichenfolge wird die Zeichenfolge an eine Zahl "sticken" oder logisch entgegengesetzten Text trennen, der dem Text in der Zeile folgt (auch wenn sie durch neutralen Inhalt wie Leerzeichen und Interpunktion getrennt wird). Ohne "Zurücksetzen" vor der Zeichenfolge kann dasselbe vorkommen, aber nur mit mehr Text in entgegengesetzter Richtung, nicht mit einer Zahl. Ein Ansatz besteht darin, die Richtung nur nach jeder Zeichenfolge zurückzusetzen, in der Theorie, dass, wenn der vorangehende entgegengesetzte Text selbst bidi-wrapped ist, die "Zurücksetzung" nach der Zeichenfolge verhindert. (Wenn Sie die "Zurücksetzung" nur vor jeder Zeichenfolge ausführen, funktioniert dies definitiv nicht, da wir keine bidi-umbrochenen Zahlen erfordern möchten, und auf eine bidi-umbrochene entgegengesetzte Richtungszeichenfolge kann eine Zahl folgen.) Dennoch besteht die sicherste Richtlinie darin, die "Zurücksetzung" an beiden Enden jeder Zeichenfolge durchzuführen, da RTL-Nachrichtenübersetzungen häufig untranslatierte lateinische Markennamen und technische Begriffe enthalten, und einer davon kann ein bidi-umbrochener eingefügter Wert folgen. Wenn man eine solche Nachricht hat, ist es jedoch am besten, die "Zurücksetzung" manuell in der Nachrichtenübersetzung selbst durchzuführen, da der Text der Nachricht in entgegengesetzter Richtung von einer eingefügten Zahl gefolgt werden könnte, auf die wir trotzdem nicht bidi-wrap würden. Daher wird "reset" erst nach dem aktuellen Standardwert der Zeichenfolge zurückgesetzt. In einer Alternative zum "Zurücksetzen" ermöglichen kürzlich hinzugefügte Ergänzungen der HTML-, CSS- und Unicode-Standards die Isolation als Teil der Directionality-Deklaration. Diese Form der Isolierung ist besser als "Zurücksetzen", da sie weniger Platz benötigt, keine Kenntnis der Kontextrichtung erfordert, einen sanfteren Effekt als "Zurücksetzen" hat und beide Enden der Zeichenfolge schützt. Wir lassen die Verwendung jedoch noch nicht zu, da erforderliche Plattformen sie noch nicht unterstützen.

Die Bereitstellung dieser Wrapping-Dienste ist der grundlegende Zweck des bidi-Formatierers.

2. Direktionalitätsschätzung Wie weiß man, ob eine Zeichenfolge, die in umgebenden Text eingefügt werden soll, dieselbe Richtungsalität aufweist? Nun, in vielen Fällen weiß man, dass dies beim Schreiben des Codes bei der Einfügung der Fall sein muss, z. B. wenn eine lokalisierte Nachricht in eine lokalisierte Seite eingefügt wird. In solchen Fällen ist es nicht erforderlich, den bidi-Formatierer überhaupt einzubeziehen. In einigen anderen Fällen muss sie nicht mit dem Kontext identisch sein, sondern ist entweder Konstanten (z. B. URLs sind immer LTR) oder anderweitig bekannt. In den übrigen Fällen, z. B. wenn die Zeichenfolge vom Benutzer eingegeben wird oder aus einer Datenbank stammt, ist die Sprache der Zeichenfolge (und damit die Richtungsalität) nicht bekannt und muss zur Laufzeit geschätzt werden. Der bidi-Formatierer kann dies automatisch mithilfe des standardmäßigen Algorithmus für die erste starke Schätzung ausführen. Sie kann auch für die Verwendung eines benutzerdefinierten Direktionalitätsschätzungsobjekts konfiguriert werden.

Java Dokumentation für android.text.BidiFormatter.

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Eigenschaften

Name Beschreibung
Class

Gibt die Laufzeitklasse dieses Werts Objectzurück.

(Geerbt von Object)
Handle

Das Handle für die zugrunde liegende Android-Instanz.

(Geerbt von Object)
Instance

Factory zum Erstellen einer Instanz von BidiFormatter für die Standardgebietsschemarichtung.

IsRtlContext
JniIdentityHashCode

Ruft den Identitätshashcode ab, der diesem Java Peer von der Interop-Laufzeit zugewiesen ist.

(Geerbt von Object)
JniPeerMembers

Hilfsklasse zum Formatieren von Text für die Anzeige in einem potenziell entgegengesetzten Direktionalitätskontext ohne Garbling.

PeerReference

Ruft den JNI-Objektverweis für diesen Java Peer ab.

(Geerbt von Object)
StereoReset
ThresholdClass

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

(Geerbt von Object)
ThresholdType

Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen.

(Geerbt von Object)

Methoden

Name Beschreibung
Clone()

Erstellt und gibt eine Kopie dieses Objekts zurück.

(Geerbt von Object)
Dispose()

Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden.

(Geerbt von Object)
Dispose(Boolean)

Veröffentlicht die Ressourcen, die von diesem Java Peer gehalten werden.

(Geerbt von Object)
Equals(Object)

Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist.

(Geerbt von Object)
GetHashCode()

Gibt einen Hashcodewert für das Objekt zurück.

(Geerbt von Object)
GetInstance(Boolean)

Factory zum Erstellen einer Instanz von BidiFormatter aufgrund der Kontextrichtung.

GetInstance(Locale)

Factory zum Erstellen einer Instanz von BidiFormatter aufgrund des Kontextgebietsschemas.

IsRtl(ICharSequence)

Funktioniert wie #isRtl(String), verwendet aber eine CharSequence anstelle einer Zeichenfolge.

IsRtl(String)

Schätzt die Richtungsalität einer Zeichenfolge mithilfe der Heuristik der Standardtextrichtung.

JavaFinalize()

Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind.

(Geerbt von Object)
Notify()

Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet.

(Geerbt von Object)
NotifyAll()

Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten.

(Geerbt von Object)
SetHandle(IntPtr, JniHandleOwnership)

Legt die Handle-Eigenschaft fest.

(Geerbt von Object)
ToArray<T>()

Erstellt ein verwaltetes Array aus diesem Java Arraywrapper.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolgendarstellung des Objekts zurück.

(Geerbt von Object)
UnicodeWrap(String, Boolean)

Funktioniert wie #unicodeWrap(CharSequence, TextDirectionHeuristic, boolean), verwendet jedoch den Standard-Richtungsschätzungsalgorithmus des Formatierers.

UnicodeWrap(String, ITextDirectionHeuristic, Boolean)

Funktioniert wie #unicodeWrap(String, TextDirectionHeuristic, boolean), verwendet aber eine CharSequence anstelle einer Zeichenfolge.

UnicodeWrap(String, ITextDirectionHeuristic)

Funktioniert wie #unicodeWrap(CharSequence, TextDirectionHeuristic, boolean), aber es wird angenommen isolate , dass es wahr ist.

UnicodeWrap(String)

Funktioniert wie #unicodeWrap(CharSequence, TextDirectionHeuristic, boolean), verwendet aber den Standard-Richtungsschätzungsalgorithmus des Formatierers und geht davon aus, dass isolate er wahr ist.

UnicodeWrapFormatted(ICharSequence, Boolean)

Funktioniert wie #unicodeWrap(CharSequence, TextDirectionHeuristic, boolean), verwendet jedoch den Standard-Richtungsschätzungsalgorithmus des Formatierers.

UnicodeWrapFormatted(ICharSequence, ITextDirectionHeuristic, Boolean)

Funktioniert wie #unicodeWrap(String, TextDirectionHeuristic, boolean), verwendet aber eine CharSequence anstelle einer Zeichenfolge.

UnicodeWrapFormatted(ICharSequence, ITextDirectionHeuristic)

Funktioniert wie #unicodeWrap(CharSequence, TextDirectionHeuristic, boolean), aber es wird angenommen isolate , dass es wahr ist.

UnicodeWrapFormatted(ICharSequence)

Funktioniert wie #unicodeWrap(CharSequence, TextDirectionHeuristic, boolean), verwendet aber den Standard-Richtungsschätzungsalgorithmus des Formatierers und geht davon aus, dass isolate er wahr ist.

UnregisterFromRuntime()

Hebt die Registrierung dieses Java Peers aus der Interop-Laufzeit auf.

(Geerbt von Object)
Wait()

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em< oder >em<unterbrochen>/em<.><>

(Geerbt von Object)
Wait(Int64, Int32)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)
Wait(Int64)

Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

Name Beschreibung
IJavaPeerable.Disposed()

Benachrichtigt die Interoplaufzeit, dass dieser verwaltete Peer verworfen wurde.

(Geerbt von Object)
IJavaPeerable.DisposeUnlessReferenced()

Gibt diesen Java Peer frei, es sei denn, er wird von einem anderen verwalteten Verweis beibehalten.

(Geerbt von Object)
IJavaPeerable.Finalized()

Benachrichtigt die Interoplaufzeit, dass dieser verwaltete Peer abgeschlossen wurde.

(Geerbt von Object)
IJavaPeerable.JniManagedPeerState

Ruft den Zustand ab, der die Beziehung zwischen diesem verwalteten Peer und seinem JNI-Verweis beschreibt.

(Geerbt von Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Legt den Interop-Identitätshashcode für diesen Java Peer fest.

(Geerbt von Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Legt den verwalteten und JNI-Peerstatus für diesen Java Peer fest.

(Geerbt von Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Legt den JNI-Objektverweis fest, der von diesem verwalteten Peer verwendet wird.

(Geerbt von Object)

Erweiterungsmethoden

Name Beschreibung
GetJniTypeName(IJavaPeerable)

Ruft den JNI-Namen des Typs der Instanz selfab.

JavaAs<TResult>(IJavaPeerable)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

JavaCast<TResult>(IJavaObject)

Führt eine android-laufzeitgecheckte Typkonvertierung aus.

JavaCast<TResult>(IJavaObject)

Hilfsklasse zum Formatieren von Text für die Anzeige in einem potenziell entgegengesetzten Direktionalitätskontext ohne Garbling.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Versuchen Sie, die Eingabe selfzu TResult erzwingen, und überprüfen Sie, ob die Koersion auf der Java Seite gültig ist.

Gilt für: