ホームページ > Java > &#&チュートリアル > インターフェイスを使用してフラグメントとそのアダプターの間で通信するにはどうすればよいですか?

インターフェイスを使用してフラグメントとそのアダプターの間で通信するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-19 12:58:03
オリジナル
363 人が閲覧しました

How to Communicate Between a Fragment and its Adapter Using an Interface?

フラグメントとアダプター間の通信用のインターフェイスの実装

説明したシナリオには、フラグメント MyListFragment, ListView とカスタム CursorAdapter. を含む。リストの特定の行でボタンが押されたときに MyListFragment に通知することを目的としています。この通信を実現するには、インターフェイス ベースのアプローチを採用できます。

MyListAdapter で、コールバック メソッド buttonPressed を使用してインターフェイス AdapterInterface を定義します。 ()、 ボタンのクリック時に呼び出されます:

public class MyListAdapter extends CursorAdapter {

    public interface AdapterInterface {
        public void buttonPressed();
    }

    ...
}
ログイン後にコピー
次に、

MyListAdapter を変更して、タイプ AdapterInterface のインスタンス変数とコンストラクターを含めます。このインターフェースのインスタンスを引数として受け入れます:

private AdapterInterface buttonListener;

public MyListAdapter (Context context, Cursor c, int flags, AdapterInterface buttonListener) {
  super(context,c,flags);
  this.buttonListener = buttonListener;
}
ログイン後にコピー

MyListFragment で、AdapterInterface を実装し、buttonPressed(), をオーバーライドします。アダプター内の AdapterViewonClickListener から呼び出されます。

public MyListFragment extends Fragment implements AdapterInterface {

    @Override
    public void buttonPressed() {
        // ...
    }
}
ログイン後にコピー
最後に、

MyListFragmentMyListAdapter をインスタンス化します。 > そして、MyListFragment 自体のインスタンスを引数としてアダプターのコンストラクターに渡します。

これを行うことで、
MyListAdapter adapter = new MyListAdapter (getActivity(), myCursor, myFlags, this);
ログイン後にコピー
MyListAdapter

buttonPressed(リスト行のボタンが押されるたびに、MyListFragment の) メソッド。これにより、アダプターとフラグメント間のシームレスな通信が可能になり、ボタンのクリック時に必要なアクションを実行できるようになります。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート