【问题标题】:Cannot convert from FragmentActivity to Fragment无法从 FragmentActivity 转换为 Fragment
【发布时间】:2014-07-21 19:08:58
【问题描述】:

我在应用程序中使用了片段。当我将 FragmentActivity 类的构造函数传递给片段时,它会给出错误,即“类型不匹配:无法从 ReadFragment 转换为 Fragment”。提前感谢您的帮助

ReadFragment.java

public class ReadFragment extends FragmentActivity {

public ReadFragment(){

}
@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.read_layout);
 }
}

MainActivity.java

......
    Fragment fragment = null;

    fragment = new ReadFragment();
......
}

【问题讨论】:

  • FragmentActivity 是一个活动,不扩展片段,所以它不能被转换为片段!

标签: android android-fragments


【解决方案1】:

我猜你想做的是:

public class ReadFragment extends Fragment {

或者(这不应该工作,因为你不能从一个转换到另一个):

fragment_activity = new ReadFragment();
fragment = (fragment) fragment_activity;

现在你可以选择了

【讨论】:

  • 为什么要将继承 Fragment 的对象类型转换为 Fragment?这对我来说毫无意义。
  • 你不能从 FragmentActivity 转换到 Fragment!
  • 对不起,我读错了,虽然你希望他在将 FragmentActivity 更改为 Fragment 后投射它。
  • 无法从 FragmentActivity 投射到 Fragment
【解决方案2】:

FragmentActivity 不是片段,因此不能分配给片段类型的变量。您的 ReadFragment 应该改为扩展 Fragment。我建议做this 教程来学习片段的基础知识,并可能在网上搜索 Java 教程,这是 Java 的基础知识。

public class ReadFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

        //For more info how to implement this i highly suggest you read the tutorial.
    }

    ...
}

在扩展 Fragment 时,您还需要覆盖 OnCreateView。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-22
    • 2016-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-13
    • 1970-01-01
    相关资源
    最近更新 更多