"MultiAutoCompleteTextView" から拡張されたカスタム ビューがあります。ユーザーが CustomTextView への入力を開始すると、ポップアップに推奨値が表示されます。これらの値のいずれかを選択すると、選択した値が CustomTextView に取り込まれます。
選択できる値には、ID と名前があります。デフォルトでは、ユーザーがリストから値を選択し、CustomTextView にその選択された値が入力されると、TalkBack は選択されたアイテムの ID を奇妙な方法で読み上げます。
それは読む
"(単語全体としての itemID) は、syn (個々の文字としての itemId) のカンマ スペースを置き換えます"
たとえば、idがappleの場合、読み取ります
"apple は syn アップル コンマ スペースを置き換えます"
IDではなく名前だけ読み上げてほしいです。
アクセシビリティ用のカスタム ビューを追加するためのアクセシビリティ ドキュメントを読む ( http://developer.android.com/guide/topics/ui/accessibility/apps.html#custom-views ) さまざまな API を上書きしてイベント テキストを設定しようとしましたが、しかし、イベントテキストに対して何かを行うとすぐに、何も読み上げられません。
API 15以降のみをサポートする必要があるため、CustomTextViewにコードを追加しました
public void onPopulateAccessibilityEvent(AccessibilityEvent event){
super.onPopulateAccessibilityEvent(event);
System.out.println("onPopulateAccessibilityEvent \n s = " + s
+ "\n event text = " + event.getText());
CharSequence c = "Test";
event.getText().clear();
event.getText().add(c);
System.out.println("event text after setting = " + event.getText());
}
デバッグ システム アウトで、イベント テキストが ID から「Test」に更新されていることがわかります。
onPopulateAccessibilityEvent
s = Jo Blogs
event text = [UID1234, ]
event text after setting = [Test]
したがって、文字列「Test」が読み上げられない理由がわかりませんか? 何か案は?
注: 次のコードを追加すると、CustomTextView に触れたときに "Touched on CustomTextView" が正しく読み上げられます。ただし、このメソッドを上書きしても、提案からアイテムが最初に選択され、CustomTextView が設定されたときとの違いはありません。
@Override
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info){
super.onInitializeAccessibilityNodeInfo(info);
info.setText("Touched on CustomTextView");
}