2012-01-15 88 views
4

好吧,我現在剛開始進入Android編程,我正在關注android「TabActivity」教程:http://developer.android.com/reference/android/app/TabActivity.html。 所有東西都可以工作,但似乎無法找到某些支持類,請參閱下面的代碼來生成錯誤。Android SDK片段支持

mTabManager.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"), 
      FragmentStackSupport.CountingFragment.class, null); 
    mTabManager.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"), 
      LoaderCursorSupport.CursorLoaderListFragment.class, null); 
    mTabManager.addTab(mTabHost.newTabSpec("custom").setIndicator("Custom"), 
      LoaderCustomSupport.AppListFragment.class, null); 
    mTabManager.addTab(mTabHost.newTabSpec("throttle").setIndicator("Throttle"), 
      LoaderThrottleSupport.ThrottledLoaderListFragment.class,null); 

對於FragmentStackSupport/LoaderCursorSupport/LoaderCustomSupport/LoaderThrottleSupport,它說對所有的人不能被解析爲一個類型。我已將最新的支持庫添加到名爲「libs」的根目錄中的一個文件夾中,並將其複製到「C:/ Eclipse/v4 /」目錄中。我的進口文件是:

import java.util.HashMap; 
    import android.R; 
    import android.content.Context; 
    import android.os.Bundle; 
    import android.support.v4.app.Fragment; 
    import android.support.v4.app.FragmentActivity; 
    import android.support.v4.app.FragmentTransaction; 
    import android.support.v4.app.FragmentPagerAdapter; 
    import android.view.View; 
    import android.widget.TabHost; 
    import cowdawg.hello_tab.namespace.R.layout; 
    import cowdawg.hello_tab.namespace.R.id; 

有人可以請我提供一些關於如何解決這個問題的建議,謝謝:)。

回答

10

這可能是因爲以下類不是標準的Android API(或支持庫)的一部分,但僅存在於支持演示示例代碼中用於演示目的:

FragmentStackSupport.CountingFragment 
LoaderCursorSupport.CursorLoaderListFragment 
LoaderCustomSupport.AppListFragment 
LoaderThrottleSupport.ThrottledLoaderListFragment 

您需要將這些類添加到您自己的項目中才能使用它們。 Here您可以在「文件」小節下找到源文件。

+0

感謝MH,這是迄今爲止最有用的評論,但是我仍然遇到一些問題。我下載了這些java文件,當我的其他代碼被複制到我的src文件目錄中時。他們顯示了一些錯誤(無法找到某些函數),所以我將我不需要的類和錯誤註釋掉了,但是當使用這些文件中引用的任何東西時,它會產生運行時錯誤。 是否有另一種方式我應該將這些java文件添加到我的項目?我不認爲這會很困難。 – 2012-01-15 13:56:44

+0

抓住完整的源代碼以防止任何缺失的實體(如佈局和其他資源)可能是最容易的。您可以在SDK安裝的子文件夾中找到完整的示例項目,更具體地說:'[path-to-sdk] \ extras \ android \ compatibility \ v4'。缺少的函數可能會潛在地指示您的構建目標低於示例文件所需的目標,儘管我懷疑這是否是這種情況。 – 2012-01-15 18:24:08

+0

感謝MH,我發現了文件並複製了整個佈局文件和內容(必須將實際文件複製到我的「src」文件中,否則它將找不到類,這是否正常?)。無論如何,現在到了解決如何修改這些標籤的棘手任務:)。 – 2012-01-17 13:40:34

2

您是否已將庫添加到構建路徑中?右鍵單擊eclipse中的jar - > Build Path - > Add to Build Path。

enter image description here

+0

感謝Joakim,但是我已經將它添加到構建路徑中。就在這時我實際上刪除了它,並重新將它添加到構建路徑中無濟於事。我也右鍵單擊該項目並單擊「添加兼容性庫」,但沒有成功。 – 2012-01-15 02:46:26

1

嘗試項目開放屬性窗口中添加右鍵單擊

enter image description here

6

在Eclipse IDE中:選擇你的項目,然後右鍵單擊該項目 - > Android的工具 - >添加支持庫。

所需的支持庫將被添加到您的項目構建路徑中。您將在Java Build Path - > Libraries選項卡 - > Android Dependencies下找到此庫jar。

享受探索!

0

相反,這些缺少類,你可以通過繼承Fragment類(或它的子類像DialogFragmentListFragment等)創建您自己的。更多信息由Android here提供。