我一直在这段代码@ 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();
}
最佳答案
您正在 GroceryDetailFragment
fragment 中扩展 android.support.v4.app.Fragment
。您正在使用 getFragmentManager()
返回一个支持 android.app.Fragment
类的 FragmentManager
。
要让您的代码正常工作,请在您的 GroceryDetailFragment
类中扩展 android.app.Fragment
或使用支持 android.support 的 getSupportFragmentManager()
方法.v4.app.Fragment,一切顺利。
android.supportv4.app.Fragment类用于支持android 3.0
之前的android版本。
要了解有关 fragment 的更多信息,请阅读此链接 Fragment .
关于java - Android Fragmenttransaction .replace 错误的第二个参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35053084/