2014-06-26 32 views
-1

我在ActionBarSherlock使用API​​编译ActionBarSherlock错误4.4.2

@Override 
public boolean onRequestSendAccessibilityEvent(View child, AccessibilityEvent event) 
{ 
    if (super.onRequestSendAccessibilityEvent(child, event)) { 
     // Add a record for ourselves as well. 
     AccessibilityEvent record = AccessibilityEvent.obtain(); 
     onInitializeAccessibilityEvent(record); 
     // Populate with the text of the requesting child. 
     child.dispatchPopulateAccessibilityEvent(record); 
     event.appendRecord(record); 
     return true; 
    } 
    return false; 
} 

@Override 
public void onInitializeAccessibilityNodeInfo(AccessibilityNodeInfo info) { 
    super.onInitializeAccessibilityNodeInfo(info); 
    info.setScrollable(isScrollableForAccessibility()); 
    View selectedView = getSelectedView(); 
    if (selectedView != null) { 
     info.setEnabled(selectedView.isEnabled()); 
    } 
} 

@Override 
public void onInitializeAccessibilityEvent(AccessibilityEvent event) { 
    super.onInitializeAccessibilityEvent(event); 
    event.setScrollable(isScrollableForAccessibility()); 
    View selectedView = getSelectedView(); 
    if (selectedView != null) { 
     event.setEnabled(selectedView.isEnabled()); 
    } 
    event.setCurrentItemIndex(getSelectedItemPosition()); 
    event.setFromIndex(getFirstVisiblePosition()); 
    event.setToIndex(getLastVisiblePosition()); 
    event.setItemCount(getCount()); 
} 

这个代码,我得到super.onInitializeAccessibilityEvent(事件)编译错误;和其他一些方法。

有人会知道为什么会发生这种情况?

谢谢!

+0

而错误是......究竟是什么? – CommonsWare

+0

错误是,调用需要api级别14,我已将它设置为8.但这是令人困惑的,因为我明确地将我的设置为4.4.2 – Genadinik

回答

1

的抱怨是,你android:minSdkVersion设置为8,而代码指的是未添加直到API级别14

如果您正试图修改ActionBarSherlock和编译的类,方法或字段你可以添加适当的代码来处理这个问题(检查Build.VERSION.SDK_INT)并添加@TargetApi()注释来阻止Lint抱怨。

+0

谢谢。如果我使用ActionBarSherlock并将我的minSdk设置为8,会发生什么情况?应用程序崩溃的人谁在他们的设备上有Android版本8? – Genadinik

+1

@Genadinik:那么到目前为止,它还没有。这些都是回调,可能只是在Android的旧版本上不会调用,因此是安全的。尽管如此,林特并没有将这些情况与其他情况区分开来,这就是为什么林特吼叫的原因。 – CommonsWare