我有一個名爲MainGamePanel的類,它擴展了SurfaceView,我在其中運行處理我的更新和繪圖代碼的線程。然後我有一個運行editor.xml文件的活動,其中包含一個運行我的MainGamePanel的相對佈局和一個FrameLayout,我用它作爲容器來容納一個片段。所以我的MainGamePanel佔據了屏幕的2/3,而右邊的片段佔據了屏幕的剩餘1/3。從活動或片段訪問mainThread中的成員
該片段包含一個按鈕,我想用它來重置位於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類的一些對象敬酒。感謝您的時間和任何信息,您可以發送我的方式。
已經回答: 我發現我必須在我的活動中獲取我的視圖的句柄,並讓活動訪問這些信息。然後當用戶點擊我片段中的按鈕時,我讓活動知道並更新信息。
http://developer.android.com/training/basics/fragments/communicating.html – zapl
這確實解釋瞭如何在片段和活動之間進行通信,但是我的MainGamePanel類是一個自定義的surfaceView類,這是類I需要溝通,所以我仍然對此感到困惑。 – Pedrom