ユーザーが誤ったユーザー名またはパスワードを入力している間に、以下のコードを使用してダイアログボックスを表示しようとしました。Androidトークバックがダイアログボックスの内容を読み取っていない
private void showAlert(String title, String msg) {
customDialog = new Dialog(LoginActivity.this,
android.R.style.Theme_Dialog);
customDialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
customDialog.setContentView(R.layout.custom_alert_dialog);
tvTitle = (TextView) customDialog
.findViewById(R.id.dialog_title);
tvMsg = (TextView) customDialog
.findViewById(R.id.dialog_message);
btnNeutral = (Button) customDialog
.findViewById(R.id.closeAlert);
tvMsg.setText(msg);
tvTitle.setText(title);
tvMsg.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED);
tvMsg.setFocusable(true);
btnNeutral.setText("Close");
btnNeutral.setVisibility(View.VISIBLE);
btnNeutral.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
customDialog.dismiss();
}
});
customDialog.show();
tvMsg.requestFocus();
}
コードは正常ですが、私の心配は、私がアンドロイドトークバックを使用しようとしているときです。ダイアログボックスのタイトルのみが読み込まれます。トークバックは、タイトルの代わりにダイアログボックスの内容(メッセージ)を読む必要があります。誰も私にこれを手伝ってもらえますか?
私は上記の指示に従っていますが、それでも私は同じ問題を抱えています。 –
競合状態になっている可能性があります。ビューがレンダリングされていることを確認してから、ViewAccessibilityEventラインを送信してください。そうでない場合、ビューがレンダリングされるのを確実にする正しいコールバックを見つけるために、遅延が必要です。 – ChrisCM
私は、Thread.sleepを使ってビューをレンダリングするのに数秒待ってから 'tvMsg.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_ACCESSIBILITY_FOCUSED);コードのみを適用しました。しかし、まだそれは動作していません。 –