RoboFragment不适用于方法FragmentTransaction.add(int,Fragment)

时间:2015-01-17 21:47:13

标签: java android android-fragments guice roboguice

我有

public class ItemDetailFragment extends RoboFragment

我尝试从另一个活动创建它:

public class ItemDetailActivity extends RoboFragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_item_detail);

        // Show the Up button in the action bar.
        getActionBar().setDisplayHomeAsUpEnabled(true);

        // savedInstanceState is non-null when there is fragment state
        // saved from previous configurations of this activity
        // (e.g. when rotating the screen from portrait to landscape).
        // In this case, the fragment will automatically be re-added
        // to its container so we don't need to manually add it.
        // For more information, see the Fragments API guide at:
        //
        // http://developer.android.com/guide/components/fragments.html
        //
        if (savedInstanceState == null) {
            // Create the detail fragment and add it to the activity
            // using a fragment transaction.
//            Bundle arguments = new Bundle();
//            arguments.putString(ItemDetailFragment.ARG_ITEM_ID,
//                    getIntent().getStringExtra(ItemDetailFragment.ARG_ITEM_ID));
            ItemDetailFragment fragment = new ItemDetailFragment();
            //fragment.setArguments(arguments);
            getFragmentManager().beginTransaction()
                    .add(R.id.item_detail_container, fragment)
                    .commit();

            fragment.init(getApplicationContext());
        }
    }

但是我收到了这个错误:

Error:(45, 21) Gradle: error: no suitable method found for add(int,ItemDetailFragment)
method FragmentTransaction.add(int,Fragment,String) is not applicable
(actual and formal argument lists differ in length)
method FragmentTransaction.add(int,Fragment) is not applicable
(actual argument ItemDetailFragment cannot be converted to Fragment by method invocation conversion)
method FragmentTransaction.add(Fragment,String) is not applicable
(actual argument int cannot be converted to Fragment by method invocation conversion)

1 个答案:

答案 0 :(得分:2)

从我所看到的情况来看,RoboFragmentActivity从支持库扩展android.support.v4.app.FragmentActivity

我认为你应该拨打getSupportFragmentManager()而不是getFragmentManager()