FragmentTransaction.replace()参数

时间:2015-09-02 13:22:19

标签: android

我创建了一个名为SlidingFragment的类,它从Fragment扩展而来,在我的MainActivity中我放了这些行:

MainActivity.java:

public class MainActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setUpView();
        setUpFragment();

    }
    void setUpView(){
        setContentView(R.layout.activity_main);
    }
    void setUpFragment(){
        FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
        SlidingFragment fragment = new SlidingFragment();
        transaction.replace(R.id.sample_content_fragment, fragment);
        transaction.commit();
    }

}

问题是FragmentTransaction类的replace()方法无法识别第二个参数片段,它是SlidingFragment对象。我明白了: 发现错误的第二个参数类型.'SlidingFragment'需要'android.support.v4.app.Fragment'。 替换(INT,android.support.v4.app.Fragment) 至 替换(INT,com.example.g514110.IhmSlidingTabs.SlidingFragment)

我理解这个问题,但我不知道如何解决它。 请有人帮忙。谢谢

3 个答案:

答案 0 :(得分:1)

SlidingFragment是否扩展

import android.support.v4.app.Fragment;

而不是

android.app.Fragment

答案 1 :(得分:0)

确保SlidingFragment正在延长android.support.v4.app.Fragment。基于此编译器错误,它当前不是。

答案 2 :(得分:0)

在我面对这个问题之前,我做了一些改变。现在它的工作正常

新的细分页面例如:home_fragment

import android.support.v4.app.Fragment;

主XML设计必须包含任何带有您ID的布局,例如:

android:id="@+id/fragment_container" 

主Java类

import android.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;

点击活动

home_fragment fragment = new home_fragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, fragment);
transaction.commit();

此代码适用于我