无法解决方法错误Android Studio

时间:2016-07-04 15:48:03

标签: java android android-fragments

我尝试构建一个在活动框架中更改片段的方法。 其中一项活动进展顺利,但在第二项活动中我遇到了错误。我已经复制了第一个活动中的代码并更改了相关内容,但在第二部分中我得到的错误是

  

错误:(65,25)错误:没有为add(int,MyCarView)找到合适的方法   方法FragmentTransaction.add(Fragment,String)不适用   (参数不匹配; int不能转换为Fragment)
  方法FragmentTransaction.add(int,Fragment)不适用   (参数不匹配; MyCarView无法转换为Fragment)

工作的代码是:

fragment2  = new MyCarEdit();

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.add(R.id.myCarFrame,fragment2);
        transaction.commit();

和不工作的代码的第二部分是 -

fragment3 = new MyCarView();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction2 = fragmentManager.beginTransaction();
transaction2.add**(R.id.myCarFrame2,fragment3)**;
transaction2.commit();

** =是标记为错误的部分

像我之前说过的那样,我已经将这些代码放在其他活动中,并且它们运行良好。

这里有什么问题?

1 个答案:

答案 0 :(得分:0)

除了使用正确的类之外,您不应该以您的方式创建Fragments。谷歌创建片段的指导原则是你需要一个public static Fragment newInstance()方法来创建实例和参数,你的构造函数应该是空的。类似的东西:

public class YourFragment extends Fragment {

    public static YourFragment newInstance() {
        YourFragment frag = new YourFragment();
        Bundle args = new Bundle();
        ...
        frag.setArguments(args);
        return frag;
    }

    public YourFragment() {}

    ...
}