2015-08-11 35 views
9

Sprawdziłem z domyślnym okienkiem dialogowym powiadomień przez Android TalkBack. Domyślne zachowanie Android Talk Back polega na tym, że odczytuje całą zawartość (non stop) w oknie dialogowym. Czy istnieje sposób, w jaki mogę go dostosować zgodnie z moimi potrzebami. Na przykład:Dostosuj system Android Talkback w dialogu alarmowym?

AlertDialog alertDialog = new AlertDialog.Builder(AlertDialogActivity.this).create(); 
alertDialog.setTitle("Alert Dialog"); 
alertDialog.setMessage("This is my alert dialog"); 
alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
    public void onClick(DialogInterface dialog, int which) { 
     Toast.makeText(getApplicationContext(), "You clicked on OK", Toast.LENGTH_SHORT).show(); 
    } 
}); 

alertDialog.show(); 

Gdy pojawi się okno dialogowe, odczytuje automatycznie "Alert Dialog To mój alert dialog OK..." Ale chcę to kontrolować, tak jak powinien przeczytać tylko "Alert Dialog" lub "To jest mój dialog alarmowy" itp.

I podczas stukania w "OK" odczytuje tylko "OK", zamiast "OK".

Odpowiedz

1

Jeśli dobrze zrozumiałem to, co chcesz, można wdrożyć niestandardowe powiadomienie okno, na przykład jak to jest zrobione here, istotnych codeSample:

final Dialog dialog = new Dialog(context); 
dialog.setContentView(R.layout.dialog); 
dialog.setTitle("Android Custom Dialog Box"); 
TextView txt = (TextView) dialog.findViewById(R.id.txt); 
txt.setText("This is an Android custom Dialog Box Example! Enjoy!"); 
Button dialogButton = (Button) dialog.findViewById(R.id.dialogButton); 
     dialogButton.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       dialog.dismiss(); 
      } 
     }); 

dialog.show(); 

a następnie ustawić żądany tekst odczytany przez mową na Widoki wybrane za pomocą View.setContentDescription(text)

+0

Próbowałem tego, ale głos czyta cały alert mimo wszystko. – Onheiron

+2

Hi @Templerschaf, odczytuje opis zawartości przycisku. Dziękuję za to. Ale nie mogę zaakceptować tej odpowiedzi, ponieważ jest ona częściowo poprawna. Po otwarciu dialogu odczytuje zawartość automatycznie. Muszę to również dostosować. – Tauqir

+1

Możesz [wyciszyć] (http://stackoverflow.com/a/16469954/3309562) elementy z View.setContentDescription ("\ u00A0") i możesz wymusić ich odczytanie przez [przesunięcie fokusu] (http://stackoverflow.com/a/13303106/3309562) z View.sendAccessibilityEvent (AccessibilityEvent.TYPE_VIEW_FOCUSED) – Templerschaf