Có! Bạn chắc chắn có thể làm điều này. Hãy thử làm theo mẫu được nêu bên dưới.
Trong file AndroidManifest.xml
của bạn tuyên bố như sau (thay thế các phiên bản nền tảng với bất cứ ứng dụng của bạn yêu cầu):
<!-- Build Target -->
<uses-sdk android:targetSdkVersion="14" android:minSdkVersion="7" />
Bằng cách nhắm mục tiêu một phiên bản nền tảng của API 11 hoặc cao hơn, bạn cho phép Eclipse để liên kết (biên dịch) chống lại các lớp ActionBar gốc. Cung cấp phiên bản nền tảng tối thiểu trước đó cho phép ứng dụng của bạn được cài đặt (chạy) trên các phiên bản Android cũ hơn.
đang Hoạt động của bạn sau đó sẽ giống như thế này:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (CompatibilityManager.isHoneycomb()) {
final ActionBar actionBar = getActionBar();
actionBar.setDisplayShowHomeEnabled(true);
// ...
} else {
// The ActionBar is unavailable!
// ...
}
}
Trường hợp lớp CompatibilityManager.java
chỉ đơn giản là cung cấp phương pháp helper tĩnh để xác định phiên bản hiện tại của 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);
}
}
Bạn cũng có thể xem xét tận dụng thư viện ActionBarSherlock, cung cấp API ActionBar tương thích, tất cả đều quay lại Android 2.x:
Thư viện sẽ tự động sử dụng thanh tác vụ gốc khi khả dụng hoặc sẽ tự động bao bọc triển khai tùy chỉnh xung quanh bố cục của bạn. Điều này cho phép bạn dễ dàng phát triển một ứng dụng với thanh tác vụ cho mọi phiên bản Android trở lại qua 2.x.
Hãy vui vẻ!
Tài liệu khác về khả năng tương thích ngược chung có thể được tìm thấy tại http://developer.android.com/resources/articles/backward-compatibility.html Tài liệu thanh tác vụ cũng bao gồm vấn đề này và cách sử dụng tài liệu đó dưới dạng cơ bản và vẫn tương thích ngược. http://developer.android.com/guide/topics/ui/actionbar.html#Adding – cistearns
Ok, tôi đã thực hiện một số mã tương tự. Tôi sẽ cố gắng đề nghị bạn là tốt. Vấn đề sau đó tôi tìm thấy là khi tôi cố chạy ứng dụng và trình mô phỏng (trong nhật thực) xuất hiện, chỉ có các thiết bị mức mục tiêu mới xuất hiện. Tôi đã sử dụng một cách hợp lý trình quản lý AVD để khởi động thiết bị mức thấp hơn và sau đó sử dụng cụ thể nó trong khi nó đang chạy. Tôi chọn không sử dụng ActionBarSherlock vì tôi chỉ muốn tính năng này trong các thiết bị mới ngay bây giờ. Tôi có thể đổi ý sau này. Cảm ơn. –
Sau khi thay đổi mục tiêu xây dựng và phiên bản min trong tệp AndroidManifest.xml, bạn có thể cần phải thông báo cho Eclipse biết rằng mục tiêu xây dựng đã được thay đổi. Để làm như vậy, bạn có thể nhấp chuột phải vào dự án của bạn và chọn 'Properties'.Sau đó chọn 'Android' ở menu bên trái và đảm bảo mục tiêu được chọn bằng với mục tiêu được chỉ định trong tệp kê khai của bạn. Tất cả điều này làm là cập nhật tệp xây dựng 'project.properties' trong thư mục gốc của dự án của bạn. – twaddington