BidiFormatter クラス

定義

文字化けせずに反対方向のコンテキストで表示するテキストを書式設定するためのユーティリティ クラス。

[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
継承
BidiFormatter
属性

注釈

文字化けせずに反対方向のコンテキストで表示するテキストを書式設定するためのユーティリティ クラス。 コンテキストの方向はフォーマッタの作成時に設定され、テキストの方向を推定するか、既知の場合に渡すことができます。

android.os.Build.VERSION_CODES#JELLY_BEAN_MR2未満のバージョンをサポートするには、サポート ライブラリの androidx.core.text.BidiFormatter クラスを使用できます。

これらの API には、次の機能があります。

1. Bidi 折り返し 英語のビジネス名がヘブライ語のテキストに埋め込まれている場合など、ある言語のテキストが別の逆方向の言語で文書に混在している場合、挿入された文字列とそれを囲むテキストの両方が、挿入された文字列が "ラッパー" 内の周囲のテキストから明示的に分離されていない限り、正しく表示されない可能性があります。

- 文字列が正しく表示されるように、その方向を宣言します。 これは、 #unicodeWrap と同様の方法で Unicode の bidi 書式設定コードで行うことができます。

- 文字列の方向を分離し、周囲のコンテンツに過度に影響を与えません。 現時点では、これは、上記の方向宣言に加えて、コンテキスト (LRM または RLM) と同じ方向の非表示の Unicode 文字のみを使用して行うことができるため、コンテキストの方向を "リセット" します。 "reset" は、文字列の両端で実行する必要がある場合があります。 文字列の後に "reset" を指定しないと、文字列は数値に "くっついている" か、行内で続く逆向きのテキストが論理的に分離されます (スペースや句読点などのニュートラル コンテンツで区切られた場合でも)。 文字列の前に "reset" を指定しないと、同じことが起こる可能性がありますが、数値ではなく反対方向のテキストでのみ発生します。 1つのアプローチは、各文字列の後にのみ方向を「リセット」することです。上記の反対方向のテキスト自体がバイディラップされている場合は、後の「リセット」が続くのを防ぐという理論上です。 (各文字列の前にのみ "reset" を実行しても、bidi 折り返し番号を必要とせず、双方向にラップされた反対方向の文字列の後に数値が続く可能性があるため、確実に機能しません)。それでも最も安全なポリシーは、各文字列の両端で "リセット" を行うことです。RTL メッセージの翻訳には、多くの場合、翻訳されていないラテン スクリプトのブランド名と技術用語が含まれ、その後に bidi でラップされた挿入値が続く可能性があるためです。 一方、そのようなメッセージがある場合は、メッセージの逆方向のテキストの後に挿入された番号が続く可能性があるため、メッセージ翻訳自体で手動で "リセット" を行うことをお勧めします。これは、とにかく bidi-wrap を行いません。 したがって、文字列の後にのみ "reset" が現在の既定値になります。 "リセット" の代わりに、HTML、CSS、Unicode 標準に最近追加された機能により、分離を方向宣言の一部にすることができます。 この形式の分離は、スペースが少なく、コンテキストの方向性を知る必要がないため、"reset" よりも優れた効果を持ち、文字列の両端を保護するため、"reset" よりも優れています。 ただし、必要なプラットフォームではまだサポートされていないため、使用はまだ許可されていません。

これらのラッピング サービスの提供は、bidi フォーマッタの基本的な目的です。

2. 方向推定 周囲のテキストに挿入される文字列が同じ方向を持っているかどうかをどのように知るのですか? 多くの場合、ローカライズされたメッセージがローカライズされたページに挿入される場合など、挿入を行うコードを記述する場合にこれが必要であることを知っています。 このような場合は、bidi フォーマッタをまったく使用する必要はありません。 それ以外の場合は、コンテキストと同じである必要はありませんが、定数 (URL は常に LTR など) であるか、それ以外の場合は既知です。 残りのケース (たとえば、文字列がユーザー入力またはデータベースから取得された場合) では、文字列の言語 (およびその方向) は事前に認識されないため、実行時に推定する必要があります。 bidi フォーマッタは、既定の最初の強い推定アルゴリズムを使用して自動的にこれを行うことができます。 また、カスタムの方向推定オブジェクトを使用するように構成することもできます。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

プロパティ

名前 説明
Class

この Objectのランタイム クラスを返します。

(継承元 Object)
Handle

基になる Android インスタンスへのハンドル。

(継承元 Object)
Instance

既定のロケールの方向の BidiFormatter のインスタンスを作成するためのファクトリ。

IsRtlContext
JniIdentityHashCode

相互運用ランタイムによってこのJava ピアに割り当てられた ID ハッシュ コードを取得します。

(継承元 Object)
JniManagedPeerState

文字化けせずに反対方向のコンテキストで表示するテキストを書式設定するためのユーティリティ クラス。

(継承元 JavaObject)
JniPeerMembers

文字化けせずに反対方向のコンテキストで表示するテキストを書式設定するためのユーティリティ クラス。

PeerReference

このJava ピアの JNI オブジェクト参照を取得します。

(継承元 Object)
StereoReset
ThresholdClass

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

(継承元 Object)
ThresholdType

この API は Android 用 Mono インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。

(継承元 Object)

メソッド

名前 説明
Clone()

このオブジェクトのコピーを作成して返します。

(継承元 Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

文字化けせずに反対方向のコンテキストで表示するテキストを書式設定するためのユーティリティ クラス。

(継承元 JavaObject)
Dispose()

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
Dispose(Boolean)

このJava ピアによって保持されているリソースを解放します。

(継承元 Object)
DisposeUnlessReferenced()

文字化けせずに反対方向のコンテキストで表示するテキストを書式設定するためのユーティリティ クラス。

(継承元 JavaObject)
Equals(Object)

文字化けせずに反対方向のコンテキストで表示するテキストを書式設定するためのユーティリティ クラス。

(継承元 JavaObject)
Equals(Object)

他のオブジェクトがこのオブジェクトと "等しい" かどうかを示します。

(継承元 Object)
GetHashCode()

オブジェクトのハッシュ コード値を返します。

(継承元 Object)
GetInstance(Boolean)

コンテキストの方向を指定して BidiFormatter のインスタンスを作成するためのファクトリ。

GetInstance(Locale)

コンテキスト ロケールを指定して BidiFormatter のインスタンスを作成するためのファクトリ。

IsRtl(ICharSequence)

#isRtl(String)のように動作しますが、文字列ではなく CharSequence を受け取ります

IsRtl(String)

既定のテキスト方向ヒューリスティックを使用して、文字列の方向を推定します。

JavaFinalize()

オブジェクトへの参照がなくなったとガベージ コレクションによって判断されたときに、オブジェクトのガベージ コレクターによって呼び出されます。

(継承元 Object)
Notify()

このオブジェクトのモニターで待機している 1 つのスレッドを起動します。

(継承元 Object)
NotifyAll()

このオブジェクトのモニターで待機しているすべてのスレッドを起動します。

(継承元 Object)
SetHandle(IntPtr, JniHandleOwnership)

Handle プロパティを設定します。

(継承元 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

文字化けせずに反対方向のコンテキストで表示するテキストを書式設定するためのユーティリティ クラス。

(継承元 JavaObject)
ToArray<T>()

このJava配列ラッパーからマネージド配列を作成します。

(継承元 Object)
ToString()

オブジェクトの文字列形式を返します。

(継承元 Object)
UnicodeWrap(String, Boolean)

#unicodeWrap(CharSequence, TextDirectionHeuristic, boolean)のように動作しますが、フォーマッタの既定の方向推定アルゴリズムを使用します。

UnicodeWrap(String, ITextDirectionHeuristic, Boolean)

#unicodeWrap(String, TextDirectionHeuristic, boolean)のように動作しますが、文字列ではなく CharSequence を受け取ります

UnicodeWrap(String, ITextDirectionHeuristic)

#unicodeWrap(CharSequence, TextDirectionHeuristic, boolean)のように動作しますが、isolateが true であると仮定します。

UnicodeWrap(String)

#unicodeWrap(CharSequence, TextDirectionHeuristic, boolean)のように動作しますが、フォーマッタの既定の方向推定アルゴリズムを使用し、isolateが true であると想定します。

UnicodeWrapFormatted(ICharSequence, Boolean)

#unicodeWrap(CharSequence, TextDirectionHeuristic, boolean)のように動作しますが、フォーマッタの既定の方向推定アルゴリズムを使用します。

UnicodeWrapFormatted(ICharSequence, ITextDirectionHeuristic, Boolean)

#unicodeWrap(String, TextDirectionHeuristic, boolean)のように動作しますが、文字列ではなく CharSequence を受け取ります

UnicodeWrapFormatted(ICharSequence, ITextDirectionHeuristic)

#unicodeWrap(CharSequence, TextDirectionHeuristic, boolean)のように動作しますが、isolateが true であると仮定します。

UnicodeWrapFormatted(ICharSequence)

#unicodeWrap(CharSequence, TextDirectionHeuristic, boolean)のように動作しますが、フォーマッタの既定の方向推定アルゴリズムを使用し、isolateが true であると想定します。

UnregisterFromRuntime()

相互運用ランタイムからこのJava ピアの登録を解除します。

(継承元 Object)
Wait()

現在のスレッドが起動するまで待機します。通常は、 <em>notified</em> または <em>interrupted</em>。

(継承元 Object)
Wait(Int64, Int32)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)
Wait(Int64)

現在のスレッドは、通常、 <em>notified</em> または <em>interrupted</em>、または一定のリアルタイムが経過するまで、起動されるまで待機します。

(継承元 Object)

明示的なインターフェイスの実装

名前 説明
IJavaPeerable.Disposed()

文字化けせずに反対方向のコンテキストで表示するテキストを書式設定するためのユーティリティ クラス。

(継承元 JavaObject)
IJavaPeerable.Finalized()

文字化けせずに反対方向のコンテキストで表示するテキストを書式設定するためのユーティリティ クラス。

(継承元 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

文字化けせずに反対方向のコンテキストで表示するテキストを書式設定するためのユーティリティ クラス。

(継承元 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

文字化けせずに反対方向のコンテキストで表示するテキストを書式設定するためのユーティリティ クラス。

(継承元 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

文字化けせずに反対方向のコンテキストで表示するテキストを書式設定するためのユーティリティ クラス。

(継承元 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

文字化けせずに反対方向のコンテキストで表示するテキストを書式設定するためのユーティリティ クラス。

(継承元 JavaObject)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

文字化けせずに反対方向のコンテキストで表示するテキストを書式設定するためのユーティリティ クラス。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象