我已经创建了OpenGLRenderer.java类并在其中放置了一些代码,显示没有错误。然后我将此代码放在RoomFragment.java片段中创建一个视图:
public class RoomFragment extends Fragment {
/** Called when the fragment is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GLSurfaceView view = new GLSurfaceView(this);
view.setRenderer(new OpenGLRenderer());
setContentView(this);
}}
但我得到了
构造函数GLSurfaceView(RoomFragment)未定义
和
类型RoomFragment
的方法setContentView(RoomFragment)未定义
错误。这些方法不是在头文件中实现的吗?我猜这是因为这不是一个活动,而是一个仅在按钮点击前一个片段时激活的片段(在主活动菜单选择中是活动的)。
我该如何解决这个问题?如何在片段图层中创建GLSurfaceView?
答案 0 :(得分:5)
GLSurfaceView需要与Activity
相关联Context
。 Fragment
不会从Activity
延伸而是从它的外观延伸,您正试图从内部创建一个GLSurfaceView
。
此外,必须从setContentView
调用Activity
,基本上您所说的是“我希望此活动以**View
告诉它的方式显示”。因此,您必须从Activity本身调用该方法。
尝试将GLSurfaceView
放在Activity
的{{1}}内,或者使用Fragment
的{{1}}方法检索{ {1}}它必然会被绑定。
第二种解决方案最终会像这样:
Fragment
我不确定这是不是你要找的,让我知道它是否有效!