B4. getFragmentManager 有活动 - 不相容的类型

我有一个简单的动作,按预期工作。


import android.app.Activity;
import android.app.FragmentManager;
// import android.support.v4.app.FragmentManager;
import android.os.Bundle;

public class MainActivity extends Activity {

@Override
protected void onCreate/Bundle savedInstanceState/ {
super.onCreate/savedInstanceState/;
// FragmentManager fm = getSupportFragmentManager//; // ActionBarActivity
FragmentManager fm = getFragmentManager//; // Activity
}
}


然后我替换它


import android.app.FragmentManager;





import android.support.v4.app.FragmentManager;


这样我就可以维护我的旧设备..但是,这报告了错误:


Incompatible types.

Required: android.support.v4.app.FragmentManager

Found: android.app.FragmentManager


我在这里做错了什么?

我发现的流行解决方案 - 它是使用的 getSupportFragmentManager//, 但它仅适用于 ActionBarActivites [edit-see answers] 和 FragmentActivities.

https://coderoad.ru/16690364/
另一个相应的解决方案表示使用 FragmentActivity, 但显然这一点具有相同的继承问题。

https://coderoad.ru/10596946/

import android.support.v4.app.FragmentManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

public class MainActivity extends FragmentActivity {
@Override
protected void onCreate/Bundle savedInstanceState/ {
super.onCreate/savedInstanceState/;
//setContentView/R.layout.activity_main/;
// FragmentManager fm = getSupportFragmentManager//; // ActionBarActivity
FragmentManager fm = getFragmentManager//;
}
}


我几乎确定这个问题的解决方案已经开启 SE, 但他是notgarte /为我/ 寻找。 最低示例应该帮助别人理解它。

我是新的 Android.
已邀请:

喜特乐

赞同来自:

在第一个案例中,如果你使用
getSupportFragmentManager//

, 你需要扩展
FragmentActivity

或扩展
ActionBarActivity

/extends FragmentActivity/, 只要
FragmentActivity

它是基于支持的片段的基本类。

在第二种情况下,您需要使用
getSupportFragmentManager//

反而
getFragmentManager//

.

片段被引入蜂窝状。 支持以下碎片 honeycomb 您需要使用来自支持库的片段,在这种情况下,您需要展开
FragmentActivity

和使用
getSupportFragmentManager//

.

君笑尘

赞同来自:

use getSupportFragmentManager// instead, but this only works for ActionBarActivites.


错了,它应该在你的
FragmentActivity

, 什么 FragmentActivity 在支持旧设备时位于您的支持包中。 , 然后是你的所有进口
activity

,
fragment

,
fragment managers

等等。应该有
android.support.v4.

, 指定您使用的是支持包。 没有使用 so 将导致
incompatible compile time error.



What am I doing wrong here?


您可以在没有支持的情况下组合包支持包
incompatible compile time error

, 正如我上面所说的那样。

小姐请别说爱

赞同来自:

为了 Kotlin 我 u 不应该改变,以便不是在4

在下面使用以获得活动,直到它是父母


/activity as MainDrawerActivity/


或者


//YourActivityName/getActivity///;

君笑尘

赞同来自:

用于对话 Java:


- import android.app.FragmentManager;
- FragmentManager fragmentManager;


为了 Kotlin :


- /activity as? YourActivity/?.fragmentManager

要回复问题请先登录注册