gpt4 book ai didi

java - setContentView(int) 不起作用

转载 作者:行者123 更新时间:2023-12-01 22:39:01 24 4
gpt4 key购买 nike

我正在尝试完成教程,但遇到了一些障碍。教程 实现类 SingleFragmentActivity 来托管 fragment (以及与之一起使用的 xml 文件。

我的问题是在这个 SingleFragmentActivity.java 类中,对 setContentView(int) 的调用引发了错误,它说找不到该方法。 setContentView(int) 不是 Fragment 类的一部分吗?

import android.app.Fragment;

导入android.app.FragmentManager;导入 android.os.Bundle;

public abstract class SingleFragmentActivity extends Fragment {
protected abstract Fragment createFragment();

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_fragment);

FragmentManager manager = getFragmentManager();
Fragment fragment = manager.findFragmentById(R.id.fragmentContainer);

if (fragment == null) {
fragment = createFragment();
manager.beginTransaction()
.add(R.id.fragmentContainer, fragment)
.commit();
}
}
}

最佳答案

.app.Fragment 的 View 在 onCreateView 中初始化。基本上,您需要使用 inflater 来膨胀您的 View 并将其作为 onCreateView 中的 Root View 返回。

Reference

以及链接中的示例

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
if (container == null) {
// We have different layouts, and in one of them this
// fragment's containing frame doesn't exist. The fragment
// may still be created from its saved state, but there is
// no reason to try to create its view hierarchy because it
// won't be displayed. Note this is not needed -- we could
// just run the code below, where we would create and return
// the view hierarchy; it would just never be used.
return null;
}

ScrollView scroller = new ScrollView(getActivity());
TextView text = new TextView(getActivity());
int padding = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
4, getActivity().getResources().getDisplayMetrics());
text.setPadding(padding, padding, padding, padding);
scroller.addView(text);
text.setText(Shakespeare.DIALOGUE[getShownIndex()]);
return scroller;
}

此外,如果您想使用setContentView,请使用支持库中的FragmentActivity

关于java - setContentView(int) 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26457807/

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