ホームページ > Java > &#&チュートリアル > Android でフラグメントとアダプター間の通信を実装するにはどうすればよいですか?

Android でフラグメントとアダプター間の通信を実装するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-11-15 07:20:02
オリジナル
823 人が閲覧しました

How can you implement communication between a Fragment and an Adapter in Android?

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

Android 開発の領域では、フラグメントとアダプター間のインターフェースは一般的なタスクです。これを容易にするために、アダプター インターフェイスが組み込まれたカスタム CursorAdapter を使用できます。このインターフェイスは、アダプターとフラグメント間の通信チャネルとして機能します。

フラグメント (MyListFragment) に ListView とカスタマイズされた CursorAdapter が含まれるシナリオを考えてみましょう。リストの各行にはボタンが含まれており、それをクリックするとフラグメント内でアクションを実行する必要があります。これを実現するために、アダプター内でインターフェイス AdaptorInterface が定義されます。

public class MyListAdapter extends CursorAdapter {

    public interface AdapterInterface {
        public void buttonPressed();
    }

    private AdapterInterface buttonListener;

    // ...
}
ログイン後にコピー

アダプターの bindingView メソッド内で、各行のボタンに OnClickListener が設定されます。

@Override
public void bindView(final View view, final Context context, final Cursor cursor) {
    // ...
    holder.button.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            // some action
            // need to notify MyListFragment
            if (buttonListener != null) {
                buttonListener.buttonPressed();
            }
        }
    });
}
ログイン後にコピー

ボタンのクリックを処理するには、AdapterInterface をフラグメント (MyListFragment) に実装する必要があります。 event.

public class MyListFragment extends Fragment implements AdapterInterface {

    @Override
    public void buttonPressed() {
        // some action
    }
}
ログイン後にコピー

アダプターとフラグメント間の通信を確立するために、インターフェース参照を保持するインスタンス変数とともに、新しいコンストラクターがアダプターに導入されます。

AdapterInterface buttonListener;

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

Whenアダプターを作成すると、フラグメントが引数としてコンストラクターに渡され、インターフェース実装が提供されます。

MyListAdapter adapter = new MyListAdapter (getActivity(), myCursor, myFlags, this);
ログイン後にコピー

このアプローチにより、ボタンがアダプターがクリックされると、フラグメント内の buttonPressed メソッドが呼び出され、アダプターとフラグメント間の必要な通信が容易になります。

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

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