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

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

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-15 07:20:02826ブラウズ

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 サイトの他の関連記事を参照してください。

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