将 getFragmentManager() 与 actionbarsherlock 库一起使用时出现 java.lang.NoSuchMethodError

2024-03-29

我自己的项目使用:

<uses-sdk
        android:minSdkVersion="7"
        android:targetSdkVersion="13" />

实施操作栏,我用动作栏夏洛克 http://actionbarsherlock.com/图书馆。我导入了sherlock库作为现有项目添加到我的 Eclipse 中。为了sherlock,目标平台是安卓 v3.2 API 13 .

然后,我添加了sherlock作为我自己项目的图书馆项目。我看到我自己的项目下有图书馆项目。一切似乎都很顺利。

我自己的项目主要 Activity 如下所示:

package com.test;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

public class MyActivity extends FragmentActivity {

    /**
     * hosts a Fragment, and the Fragment will inflate a layout to show
     */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        FragmentManager fragMgr;
        FragmentTransaction fragTrans;

        fragMgr = getFragmentManager(); //error complains here


           FirstFragment list = new FirstFragment();

        fragTrans = fragMgr.beginTransaction();
        fragTrans.add(android.R.id.content, list).commit();

    }
}

但是,当我运行我的应用程序时,我得到了以下信息error:

java.lang.NoSuchMethodError: com.test.MyActivity.getFragmentManager

Why getFragment不能用方法解决吗??我已经使用 sherlock 作为我自己项目的项目库......


方法getFragmentManager()仅从 3.0 开始可用,在Activity班级。由于您的目标 sdk 是 13,并且FragmentActivity延伸自Activity编译时没有问题。

但是当你在较低的sdk(例如7)上运行代码时,就没有这样的方法Activity班级。所以解决方案是使用:

 getSupportFragmentManager();

这将适用于所有Android版本。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将 getFragmentManager() 与 actionbarsherlock 库一起使用时出现 java.lang.NoSuchMethodError 的相关文章

随机推荐