我有一个名为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类中的对象,而不仅仅是做吐司。感谢您抽出时间以及您可以发送的任何信息。
已经回答了: 我发现我必须在我的活动中处理我的视图并让活动访问信息。然后当用户点击我的片段中的按钮时,我让活动知道并更新信息。
答案 0 :(得分:0)
您需要创建一个界面来在Activity和Fragment之间进行通信,
按照这个例子 - http://developer.android.com/training/basics/fragments/communicating.html
一旦您的活动知道按下的按钮,您应该在自定义类中调用一个公共方法来处理所需的逻辑。