0

更新および描画コードを処理するスレッドを実行する 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 クラスにあるいくつかのオブジェクトをリセットしたいと考えています。お時間をいただきありがとうございます。

回答済み: アクティビティ内のビューへのハンドルを取得し、アクティビティに情報にアクセスさせる必要があることがわかりました。次に、ユーザーがフラグメントのボタンをクリックすると、アクティビティに通知して情報を更新します。

4

1 に答える 1

0

アクティビティとフラグメントの間で通信するためのインターフェイスを作成する必要があります。

この例に従ってください - http://developer.android.com/training/basics/fragments/communicating.html

アクティビティが押されたボタンを認識したら、目的のロジックを処理するカスタム クラス内のパブリック メソッドを呼び出す必要があります。

于 2012-08-25T10:07:16.333 に答える