我下載了ActionBarSherlock 4.1.0.0版本,並在我的Win7 java 1.6 update 24機器上將Eclipse Project 4.2庫添加到了Eclipse 4.2中。我在Project |中使用了Android 4.1的Eclipse Project Build Target屬性|項目建設目標。我想將ActionBar功能合併到minSdkVersion =「7」的現有應用程序中。我注意到從ActionBarSherlock庫中的代碼顯得有一些不贊成的方法,和一個錯誤:Action Bar Sherlock已棄用方法
實施例1:ActionBarContainer.java,ActionBarContextView.java,ScrollingTabContainerView.java - 從類型的方法setBackgroundDrawable(繪製對象) - 使用setBackgroundDrawable視圖已被棄用
public ActionBarContainer(Context context, AttributeSet attrs) {
super(context, attrs);
setBackgroundDrawable(null);
TypedArray a = context.obtainStyledAttributes(attrs,
R.styleable.SherlockActionBar);
mBackground = a.getDrawable(R.styleable.SherlockActionBar_background);
mStackedBackground = a.getDrawable(
R.styleable.SherlockActionBar_backgroundStacked);
if (getId() == R.id.abs__split_action_bar) {
mIsSplit = true;
mSplitBackground = a.getDrawable(
R.styleable.SherlockActionBar_backgroundSplit);
}
a.recycle();
setWillNotDraw(mIsSplit ? mSplitBackground == null :
mBackground == null && mStackedBackground == null);
}
快速修復示出了如添加@SupressWarnings「棄用」的ActionBarContainer
實施例2: IcsProgressBar.java使用animationResolution其示出了作爲棄用,相同快速修復如上
private static final int[] ProgressBar = new int[] {
...
android.R.attr.animationResolution
另外,我有一個錯誤在ActivityChooserView.java:
private static class SetActivated {
public static void invoke(View view, boolean activated) {
view.setActivated(activated);
}
}
錯誤是SetActivated - 呼叫需要API 11(電流min是7)。這使得基於該清單的意義:
<uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15"/>
不宜API 7是很好的,因爲操作欄福爾摩斯應在安卓2.x的工作嗎?其他人是否經歷過這種情況,如果是的話,建議採取的行動是什麼?抑或忽略棄用?那麼SetActivated上的錯誤呢?我查閱了自述文件,並進行了一些網絡搜索,但沒有提出任何關於此的內容。感謝您的任何建議。
謝謝!
感謝您的回覆!那很好,我可以設置它忽略。關於SDK版本的錯誤呢?如果我將minSdkVerson更改爲11,是否不會阻止Android 2.x客戶端安裝該應用程序?已經購買我的應用程序的客戶中超過50%是Android 2.x設備,所以我希望能夠以這些設備可以接收我的更新的方式更新我的應用程序。 – user1362308
我將minSdkVersion更改爲11,保存,清理項目並排除錯誤。然後,我將midSdkVersion更改回7,保存並清理了該項目,仍然沒有錯誤。我認爲我看起來很擅長這一點!非常感謝yoru的幫助! – user1362308