0

リストビューを含むフラグメントがあります。リストビューはカスタム アダプターを使用します。リストビューの各アイテムにはボタンが含まれています。私が必要とするのは、アクティビティがリストビューでどのボタンを押したかを知ることです。押されたボタンに応じて、フラグメントもそのアクティビティにメッセージを送信する必要があるため、これが必要です。OnClickListenerしたがって、基本的には、アダプターではなくフラグメントに配置したいと考えています。

すべての要素を繰り返し処理して getChild() を実行することで、リストからボタンを取得しようとしましたが、クリックしても反応しません。

Button theButton = (Button)theListView.getChildAt(i).findViewById(R.id.button_id);

アダプターで getView も試しました。

Button theButton = (Button) adapter.getView(i, null, null).findViewById(R.id.button_id);
4

1 に答える 1

1

通常どおりアダプターに OnClickListener を設定しますが、フラグメントへの参照を保持してください。

フラグメント クラスが MyFragment だとします。フラグメントをアダプターに渡します。-つまり、コンストラクターで

private MyFragment theFragment;
public YourAdapter(MyFragment f) {
    this.theFragment = f;
}

このようにtheFragmentして、設定したすべての OnClickListener で使用できます。

于 2013-02-04T13:32:27.623 に答える