我有一个名为 MainGamePanel 的类,它扩展了 SurfaceView,我在其中运行一个线程来处理我的更新和绘图代码。然后我有一个运行 editor.xml 文件的活动,该文件包含一个相对布局,它运行我的 MainGamePanel 和一个 FrameLayout,我用它作为容器来保存片段。所以我让 MainGamePanel 占据了屏幕的 2/3,而片段在右侧,占据了屏幕的剩余 1/3。
该片段包含一个按钮,我想用它来重置位于我的 MainGamePanel 中的对象。如何从我的片段访问 MainGamePanel 的成员,反之亦然?
这是我检查按钮单击的片段的代码
Button button = (Button) view.findViewById(R.id.resetGrid_button);
// A simple OnClickListener for our button. You can see here how a Fragment can encapsulate
// logic and views to build out re-usable Activity components.
button.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Activity activity = getActivity();
if (activity != null)
Toast.makeText(activity, R.string.reset_button, Toast.LENGTH_LONG).show();
}
});
我想让它重置位于我的 MainGamePanel surfaceView 类中的一些对象,而不是仅仅做祝酒词。感谢您抽出宝贵的时间以及您可以发送给我的任何信息。
回答:我发现我必须在我的活动中处理我的视图并让活动访问信息。然后当用户单击我的片段中的按钮时,我让活动知道并更新信息。