2012-08-25 59 views
0

我有一個名爲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類的一些對象敬酒。感謝您的時間和任何信息,您可以發送我的方式。

已經回答: 我發現我必須在我的活動中獲取我的視圖的句柄,並讓活動訪問這些信息。然後當用戶點擊我片段中的按鈕時,我讓活動知道並更新信息。

+0

http://developer.android.com/training/basics/fragments/communicating.html – zapl

+0

這確實解釋瞭如何在片段和活動之間進行通信,但是我的MainGamePanel類是一個自定義的surfaceView類,這是類I需要溝通,所以我仍然對此感到困惑。 – Pedrom

回答