更新および描画コードを処理するスレッドを実行する SurfaceView を拡張する MainGamePanel というクラスがあります。次に、MainGamePanel を実行する相対レイアウトと、フラグメントを保持するコンテナーとして使用している FrameLayout を含む editor.xml ファイルを実行するアクティビティがあります。そのため、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 クラスにあるいくつかのオブジェクトをリセットしたいと考えています。お時間をいただきありがとうございます。
回答済み: アクティビティ内のビューへのハンドルを取得し、アクティビティに情報にアクセスさせる必要があることがわかりました。次に、ユーザーがフラグメントのボタンをクリックすると、アクティビティに通知して情報を更新します。