我想"对话" anounces标准TextView作为按钮。 我试着用这种方式
public class AccessibilityDelegateButton extends AccessibilityDelegateCompat {
private CharSequence className;
public AccessibilityDelegateButton(CharSequence className) {
super();
this.className =className;
}
@Override
public void onPopulateAccessibilityEvent(View host, AccessibilityEvent event) {
super.onPopulateAccessibilityEvent(host,event);
event.setClassName(className);
}
@Override
public void onInitializeAccessibilityNodeInfo(View host, AccessibilityNodeInfoCompat info) {
super.onInitializeAccessibilityNodeInfo(host,info);
info.setClassName(className);
}
}
和活动:
TextView finishButton= new TextView(this);
ViewCompat.setAccessibilityDelegate(finishButton, new AccessibilityDelegateButton(Button.class.getName()));
但它不起作用......
答案 0 :(得分:0)
在API 23之前的平台版本上,在主机方法之前调用android.widget。*包中的视图的委托方法。这可以防止某些属性(如类名称)被修改
从API 23开始,委托方法在主机方法之后调用,所有属性都要修改,而不会被主机类覆盖。
根据note
,AccessibilityDelegateCompat应该是相同的您是否使用API<也许23?
在这种情况下,您必须使用onInitializeAccessibilityNodeInfo
View.AccessibilityDelegateCompat
方法设置类名