是的!你絕對可以做到這一點。嘗試遵循下面列出的模式。
在你AndroidManifest.xml
文件中聲明如下(替換與任何您的應用要求平臺版本):
<!-- Build Target -->
<uses-sdk android:targetSdkVersion="14" android:minSdkVersion="7" />
通過針對API 11或更高的平臺版本,您允許Eclipse的鏈接(編譯)針對本機ActionBar類。提供較早的最低平臺版本,可以在舊版Android上安裝(運行)您的應用。
你的活動代碼應該再是這個樣子:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (CompatibilityManager.isHoneycomb()) {
final ActionBar actionBar = getActionBar();
actionBar.setDisplayShowHomeEnabled(true);
// ...
} else {
// The ActionBar is unavailable!
// ...
}
}
凡CompatibilityManager.java
類簡單地規定:確定該SDK的當前版本的靜態輔助方法:
public class CompatibilityManager {
public static final String KINDLE_FIRE_MODEL = "Kindle Fire";
/**
* Get the current Android API level.
*/
public static int getSdkVersion() {
return android.os.Build.VERSION.SDK_INT;
}
/**
* Determine if the device is running API level 11 or higher.
*/
public static boolean isHoneycomb() {
return getSdkVersion() >= Build.VERSION_CODES.HONEYCOMB;
}
/**
* Determine if the device is running API level 14 or higher.
*/
public static boolean isIceCreamSandwich() {
return getSdkVersion() >= Build.VERSION_CODES.ICE_CREAM_SANDWICH;
}
/**
* Determine if the current device is a first generation Kindle Fire.
* @return true if the device model is equal to "Kindle Fire", false if otherwise.
*/
public static boolean isKindleFire() {
return Build.MODEL.equals(KINDLE_FIRE_MODEL);
}
}
您也可以考慮借力ActionBarSherlock庫,它提供了一個兼容的API的ActionBar一路回至Android 2.X:
該庫將自動使用本機的操作欄時 提供或將自動環繞 自定義實現您的佈局。這使您可以通過2.x輕鬆開發每個Android版本的 操作欄的應用程序。
玩得開心!
上一般的向後兼容性的更多文檔,http://developer.android.com/resources/articles/backward-compatibility.html找到操作欄文檔覆蓋這個問題,以及,和如何在基本形式使用它並且仍然向後兼容。 http://developer.android.com/guide/topics/ui/actionbar.html#Adding – cistearns 2012-03-06 07:46:15
好的,我做了一些類似的編碼。我也會嘗試你的建議。然後我發現的問題是,當我試圖運行應用程序和模擬器(在eclipse中)時,只出現了目標級別的設備。我最終使用AVD管理器來啓動較低級別的設備,然後在運行時專門使用它。我選擇不使用ActionBarSherlock,因爲我現在只想在新設備中使用該功能。我稍後可能會改變主意。謝謝。 – 2012-03-07 17:30:11
在AndroidManifest.xml中更改構建目標和最小版本後,可能需要告訴Eclipse構建目標已更改。爲此,您可以右鍵單擊您的項目並選擇「屬性」。然後選擇左側菜單中的「Android」,並確保選中的目標等於清單中指定的目標。所有這些都會更新項目根目錄中的'project.properties'構建文件。 – twaddington 2012-03-07 18:45:00