フラグメントとアダプター間のインターフェイスの作成
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 サイトの他の関連記事を参照してください。