我一直在这个代码@ 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();
}
}
答案 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。