gpt4 book ai didi

android - 在 View 中动态添加 fragment

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:13:08 28 4
gpt4 key购买 nike

我已经开始使用这个 How do I add a Fragment to an Activity with a programmatically created content view

在 Activity 中创建和添加 Fragment。

但是当我尝试在动态 View 中添加相同的 fragment 时,它失败了。

你能解决它背后的问题吗?

public class MainActivity extends FragmentActivity {

private static final int CONTENT_VIEW_ID = 10101010;
private static final int CONTENT_VIEW_ID1 = 10101011;

public FragmentManager fm = getSupportFragmentManager();

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

View view = new View(this);

FrameLayout frame = new FrameLayout(this);
frame.setId(CONTENT_VIEW_ID);
frame.addView(view,new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
view.setId(CONTENT_VIEW_ID1);
setContentView(frame);
if (savedInstanceState == null) {
Fragment newFragment1 = new DebugExampleTwoFragment();
FragmentTransaction ft = fm.beginTransaction();
ft.add(CONTENT_VIEW_ID1, newFragment1);
ft.commit();
}

public static class DebugExampleTwoFragment extends Fragment {
public static int count = 0;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = new View(getActivity());
v.setBackgroundColor(Color.RED);
return v;
}
}

它因 ClassCastException 而失败,未显示确切的行号。

最佳答案

您可能会收到这样的消息:

java.lang.ClassCastException: android.view.View cannot be cast to android.view.ViewGroup

那是因为可以将 fragment 插入到 ViewGroup 或从 ViewGroup 继承的东西中。您不能将 fragment 插入到 View 中。要使您的代码运行,请更改此行:

View view = new View(this);

例如,这个:

FrameLayout view = new FrameLayout(this);//FrameLayout inherits from ViewGroup

关于android - 在 View 中动态添加 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11708386/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com