- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 Android 编程中的教程编写我的第一个使用 fragment 的应用程序:Big Nerd Ranch 指南。
我创建了一个 fragment 和一个相应的布局,现在我想向将使用它的父级添加一个 fragment 管理器。
我是这样写的:
FragmentManager fm = getSupportFragmentManager();
但是 android studio 给我这个错误:
Error:(19, 51) error: incompatible types
required: android.app.FragmentManager
found: android.support.v4.app.FragmentManager
我不明白...我的印象是 FragmentManager 可以来自支持库,也可以不来自支持库,这取决于您是否要支持 API 11 之前的构建。
有什么变化吗?
这些是我的进口:
import android.app.FragmentManager;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
当我改变时:
import android.app.FragmentManager;
到
import android.support.v4.app.FragmentManager;
我在识别 fragment 类时遇到错误;
这是相关代码:
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.fragmentContainer);
if (fragment == null){
fragment = new CrimeFragment();
fm.beginTransaction().add(R.id.fragmentContainer, fragment).commit();
}
错误是突出显示该行 如果( fragment == null){
并说:
unknown class: 'fragment'
还有几个
unexpected token
在 if 语句的每个括号和一个
unexpected identifier
在双等号上。
这是怎么回事?
最佳答案
只需将 import android.app.FragmentManager;
更改为 import android.support.v4.app.FragmentManager;
对于您编辑的问题:检查您放置代码的位置并仔细检查那些多个括号。我能够通过将代码放在任何方法之外来重现您的问题:
FragmentManager fm = getSupportFragmentManager();
Fragment fragment = fm.findFragmentById(R.id.fragmentContainer);
if (fragment == null){
fragment = new CrimeFragment();
fm.beginTransaction().add(R.id.fragmentContainer, fragment).commit();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_profile_holder, container, false);
}
关于android - getSupportFragmentManager 无法分配给 FragmentManager,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24524180/
我正在尝试在使用 androidX 的应用中进行设置。 我的问题是,当我尝试使用 PlaceAutocompleteFragment 时出现错误,因为它是来自 android.app.fragment
是否有人注意到 Android 11 的生命周期发生了任何明显的变化? 我的应用程序在 Android 11 之前的操作系统上运行良好,但在我的 Pixel 4 上每次都因错误而崩溃: E/Andro
我只是将项目移至androidX。我使用android studio refactor-> upgrade到androidX。 TargetSDK已经28岁了,并且工作正常。所以没想到会有很多错误。但
我正在学习 Android 开发。我卡在了本应非常简单的事情上。 我正在创建一个包含一个 Activity、2 个 fragment 和 1 个界面的应用。 android:minSdkVersion
我正在尝试获取一个对话框来警告用户应以横向模式查看屏幕。我有一个对话框类和我的 Activity 调用该对话框,但它提示 show(FragmentManager, String) 不适用于 show
我有一些嵌套的 fragment ,我想在 FragmentTabHost 内显示一个 Fragment。 在 FragmentTabHost setup(...) 方法中,第二个参数应该是 Frag
伙计们。 我为 Android API 14 及更高版本开发了一个应用程序,但我想使用 Android 支持库中的 ViewPager。 ViewPager 需要在构造函数中使用 android.su
FragmentManager manager = getFragmentManager(); 报错 required : android:support.v4.FragmentManager fou
我正在使用平板电脑的 Fragments 创建一个应用程序。到目前为止,我已经在左侧创建了一些按钮,并且在单击按钮时会出现 fragment 。 但我的 MainActivity.java 文件出现错
错误 错误类型不兼容:android.app.FragmentManager 无法转换为 android.support.v4.app.FragmentManager 让我抓狂。 在我的应用程序中,我
我收到以下错误 Type mismatch: cannot convert from android.app.FragmentManager to android.support.v4.app.Fra
编辑:这似乎只发生在我之前的 Activity 是横向的,并且 setRequestedOrientation() 是纵向的,这可能是什么问题? 我在一个 Activity 中有一个代码,它启动一个对
获取不兼容类型的 FragmentManager 的持续错误。需要支持库才能工作,但无法弄清楚。 Android Studio 说它需要支持导入,该支持导入就在那里,但找到了 androidx 导入。
更新: 我认为泄漏来自 getActivity().getSupportLoaderManager().restartLoader(getLoaderId(), null, this);我的对象实现
我尝试创建一个 Android 应用程序。在 Android Studio 中使用选项卡。我遇到了以下问题:我的所有 fragment 导入都导致了错误 Cannot Resolve Symbol '
使用我的 Fragment 类中的这段代码: FragmentManager fm = getFragmentManager(); 我得到了空值。为什么?我在android doc中找到了那句话: N
有没有办法从应用程序上下文中获取 FragmentManager?我想使用 ImageLoader 或 BitmapFun 来存储我从服务器下载的一些位图。这两个类都需要 FragmentManage
我对 FragmentManager 后台堆栈背后的基本原理有点困惑。 鉴于一个 Activity 有两个用于容纳不同 fragment 的容器:问题是当使用 fragment 事务将 fragmen
所以我在将 ViewPager 与 FragmentStatePagerAdapter 一起使用时遇到了这个问题然后我试图选择当前页面(即向用户显示第二页而不是第一页)我不时得到这个异常. 问题似乎是
在我的应用程序中有一个FrameLayout,我在上面添加了各种 fragment FragmentManager fm = getSupportFragmentManager(); Fragment
我是一名优秀的程序员,十分优秀!