2

この質問は何度も寄せられており、私は体系的にそれぞれを調べ、どのバージョンのperformItemClick作品を見つけようとしました. 残念ながら、onclick メソッドが呼び出されているにもかかわらず、それらを動作させることはできません。

フラグメントに 5 つの項目が埋め込まれたリストビューがあります。このフラグメントは、fragmentstatepageradapter および viewpager によって制御されます。保存された状態を復元しようとしています。

        lv.setAdapter(new SimpleAdapter(getActivity(), list,
                R.layout.list_imageview, new String[] { "answer" },
                new int[] { android.R.id.text1 }));

シンプルなアダプターは、レイアウト内に textview と imageview を持つカスタム レイアウトを取り込みます。最初は imageview は null で、クリックすると目盛りまたは十字に設定されます。これは、自分でアイテムをクリックしても、次のようにプログラムで機能しない場合に機能します。

@Override
    public void onViewStateRestored(Bundle savedInstanceState) {
        super.onViewStateRestored(savedInstanceState);
        if (savedInstanceState != null) {
            for (int i = 0; i < 5; i++) {
                lv.performItemClick(lv.getAdapter().getView(i, null, null),
                        i, i);
                Log.e("restoring state", "" + i);
            }
        }
    }

onViewStateRestored呼ばれていることも、呼ばれていることも確認できますonItemClick。アイテムのクリックのやり方に問題があると思います。私は現在、それを機能させようとしています。どのアイテムがクリックされて選択的にクリックされたかをまだ確認していないことはわかっていますが、それは簡単boolean[]です。

ご協力いただきありがとうございます。また、何度も繰り返されてきた単純な質問で申し訳ありません。それらを読んだにもかかわらず、私はまだそれらを機能させることができません。

4

1 に答える 1

1

アイテムのクリック方法に問題があると思います。

今すぐ、アダプターのメソッドによって作成されperformItemClick新しいものを呼び出します。 問題は、コールバックが受信する行ビューに画像を何らかの形で関連付けると、そのビューが実際に表示される行ビューに関連付けられていない (空中にある) ため、結果が表示されないことです。画面 (または に存在)。しかし、私はちょうど推測しています。ViewgetViewonItemClickListView

ImageViewとにかく、その作業を に結び付けるべきではありません。特に一度に複数の行を設定しようとしている場合はOnItemClickListener、アダプターレベルで実装する (および を呼び出す) 必要があります。notifydataSetChanged()

于 2013-01-26T10:53:33.137 に答える