2015-08-11 13 views
9

Tôi đã chọn với tất cả hộp thoại cảnh báo mặc định thông qua Android TalkBack. Hành vi Android Talkback mặc định là nó đọc tất cả nội dung (không dừng) trong hộp thoại. Có cách nào tôi có thể tùy chỉnh nó theo nhu cầu của tôi không. Ví dụ:Tùy chỉnh Android Talkback trong Đối thoại Alert?

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(); 

Khi hộp thoại xuất hiện, nó tự động đọc "Đối thoại thông báo. Đây là hộp thoại cảnh báo của tôi. OK." Nhưng tôi muốn kiểm soát nó, giống như nó chỉ đọc "Đối thoại thông báo" hoặc "Đây là cuộc đối thoại cảnh báo của tôi", v.v.

Và trong khi nhấn vào "OK" thì chỉ đọc "OK", thay vào đó là "nút OK".

Trả lời

1

Nếu tôi hiểu đúng những gì bạn muốn, bạn có thể thực hiện một hộp thoại cảnh báo tùy chỉnh, ví dụ như nó được thực hiện here, codesample liên quan:

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(); 

và sau đó thiết lập các văn bản mà bạn muốn đọc ra bởi TalkBack trên Số lượt xem bạn chọn với View.setContentDescription(text)

+0

Tôi đã thử điều này, nhưng giọng nói đang đọc toàn bộ hộp cảnh báo anyways – Onheiron

+2

Xin chào @Templerschaf, nó đọc mô tả nội dung nút. Cảm ơn vì điều đó. Nhưng tôi không thể chấp nhận câu trả lời này vì nó là một phần chính xác. Khi cuộc đối thoại mở ra, nó sẽ tự động đọc nội dung. Tôi cũng cần phải tùy chỉnh nó. – Tauqir

+1

Bạn có thể [mute] (http://stackoverflow.com/a/16469954/3309562) các thành phần có View.setContentDescription ("\ u00A0") và bạn có thể buộc chúng được đọc bằng cách [chuyển tiêu điểm] (http://stackoverflow.com/a/13303106/3309562) với View.sendAccessibilityEvent (AccessibilityEvent.TYPE_VIEW_FOCUSED) – Templerschaf

Các vấn đề liên quan