0

我有一个名为 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 类中的一些对象,而不是仅仅做祝酒词。感谢您抽出宝贵的时间以及您可以发送给我的任何信息。

回答:我发现我必须在我的活动中处理我的视图并让活动访问信息。然后当用户单击我的片段中的按钮时,我让活动知道并更新信息。

4

1 回答 1

0

你需要创建一个接口来在Activity和Fragment之间进行通信,

按照这个例子 - http://developer.android.com/training/basics/fragments/communicating.html

一旦您的 Activity 知道按下的按钮,您应该在您的自定义类中调用一个公共方法,该方法将处理所需的逻辑。

于 2012-08-25T10:07:16.333 回答