[英]Master/Detail Flow template on Android 2.3
我需要在Android 2.3上使用Master / Detail Flow模板。 這可能嗎?
答案是肯定的 。
需要進行兩項更改才能在Android 2.3上運行。
首先,生成的類ItemListFragment包含API級別11中引入的布局常量:simple_list_item_activated_1。 此特定布局突出顯示激活的列表項。 如果您有多窗格布局,這很有用,因為它向用戶顯示選擇了哪個列表項並在詳細信息窗格中顯示。
我暫時忽略了突出顯示,只是嘗試讓代碼運行:
int layout = android.R.layout.simple_list_item_1;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
layout = android.R.layout.simple_list_item_activated_1;
}
setListAdapter(new ArrayAdapter<DummyContent.DummyItem>(
getActivity(),
layout,
android.R.id.text1,
DummyContent.ITEMS));
第二個問題是ActionBar,在沒有添加額外庫的情況下,舊版設備無法使用。 由於這是我下一篇文章的主題,我現在暫時忽略舊設備上的ActionBar。 在ItemDetailActivity中將getActionBar()的行更改為this:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
getActionBar().setDisplayHomeAsUpEnabled(true);
}
現在你得到一個Lint警告。 該調用需要API級別11,但您的清單文件將API級別9指定為最低要求。 添加注釋以禁止onCreate()方法的新API警告:
@SuppressLint("NewApi")
現在更改AndroidManifest.xml文件以支持API級別9:
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="16" />
通過這些更改,您現在可以在Android 2.3上運行該項目。
該應用程序將在Android 2.3上崩潰,因為它缺少一些API> 10資源,因此:
setListAdapter(new ArrayAdapter(getActivity(),R.layout.main_list_item,android.R.id.text1,DummyContent.ITEMS));
將布局更改為您自己的布局。
為了獲得actionBar,應該使用Compatability庫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.