Android Fragment Transaction .replace错误的第二个争论

时间:2016-01-28 04:48:42

标签: java android

我一直在这个代码@ ft.replace(...,fragment)上得到错误的第二个参数类型错误。我不确定出了什么问题,并希望得到任何帮助。

package valdes.listone;

import android.app.FragmentTransaction;
import android.os.Bundle;
import android.app.Activity;

public class MainActivity extends Activity implements GroceryListFragment.GroceryListListener{

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

}

@Override
public void itemClicked(long id){
    //GroceryListListener
    GroceryDetailFragment fragment = new GroceryDetailFragment();
    FragmentTransaction ft = getFragmentManager().beginTransaction();
    fragment.setListId(id);
    ft.replace(R.id.fragmentContainer, fragment); //error is here.
    ft.addToBackStack(null);
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
    ft.commit();
}

}

1 个答案:

答案 0 :(得分:2)

您正在android.support.v4.app.Fragment片段中展开GroceryDetailFragment。并且您使用getFragmentManager()返回支持FragmentManager类的android.app.Fragment

要使您的代码在android.app.Fragment类中扩展GroceryDetailFragment,或使用支持android.support.v4.app.Fragment的getSupportFragmentManager()方法,您就可以了。

android.supportv4.app.Fragment 类用于支持android 3.0之前的Android版本。

要了解有关片段的更多信息,请阅读此链接Fragment