从Activity或Fragment访问mainThread中的成员

时间:2012-08-25 00:18:35

标签: android android-layout android-fragments

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

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

1 个答案:

答案 0 :(得分:0)

您需要创建一个界面来在Activity和Fragment之间进行通信,

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

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