2012-01-15 96 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提供。