ホームページ >Java >&#&チュートリアル >フラグメントとその CursorAdapter 間の通信を確立するにはどうすればよいですか?

フラグメントとその CursorAdapter 間の通信を確立するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-12 22:10:02981ブラウズ

How to Establish Communication Between a Fragment and its CursorAdapter?

フラグメントとアダプター間のインターフェイスの作成

ListView とカスタム CursorAdapter を含むフラグメントを扱う場合、それらの間の通信を確立することが重要になります。 。これを実現するために、インターフェイスはクリーンで効率的なソリューションを提供できます。

インターフェイス定義

アダプター クラスで、アダプター クラスで、ボタンが押されました。例:

public interface AdapterInterface {
    public void buttonPressed();
}

アダプターの実装

インターフェースのインスタンス変数を初期化するコンストラクターをアダプターに追加します:

public MyListAdapter(Context context, Cursor c, int flags, AdapterInterface buttonListener) {
    super(context, c, flags);
    this.buttonListener = buttonListener;
}

bindView() メソッドでは、ボタンがクリックされたときに、ボタン上の buttonPressed() メソッドを呼び出します。インターフェース:

@Override
public void bindView(...) {
    ...
    holder.button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            buttonListener.buttonPressed();
        }
    });
}

フラグメントの実装

フラグメント クラスに AdaptorInterface を実装し、buttonPressed() をオーバーライドします。メソッド:

public class MyListFragment extends Fragment implements AdapterInterface {

    @Override
    public void buttonPressed() {
        // Custom action to be performed
    }
}

初期化

アダプターの作成時に、フラグメントを引数としてコンストラクターに渡します:

MyListAdapter adapter = new MyListAdapter(getActivity(), myCursor, myFlags, this);

注意

  • アダプターも存在しないオブジェクトの参照を避けるために、フラグメントが再作成されるときに再作成されます。
  • このアプローチにより、アダプターとフラグメント間の通信を処理するクリーンで組織的な方法が提供されます。

以上がフラグメントとその CursorAdapter 間の通信を確立するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。