0

複数選択リスト ビューがあり、そのアダプター用にレイアウト ファイルを設計しました。レイアウトに画像ビューがあり、それがクリックされたときに、それがリストのどの子であるかを知りたいです。メソッド list.getChildAt(???) をさらに使用するためのリストである親の子 ID を意味します。誰かがそれを取得する方法を教えてもらえますか?

画像はリスト ビューから独立しており、その onClick 属性については、画像ビューのリソースを変更する別のメソッドを作成しました...特定の imageView をクリックしたときにその子がどの子であるかを知るにはどうすればよいですか?

XML レイアウトには、次のようなものがあります。

<ImageView
    android:id="@+id/choice_image"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:onClick="deleteSelected" />

そして、ここに deleteSelected メソッドの一部があります:

public void deleteSelected(View view) {

    icon = (ImageView)view.findViewById(R.id.choice_image);

    list.getChildAt(???); \\ To know which child the view is        

}

アダプタを次のように設定しました。

list.setAdapter(new ArrayAdapter<String>(this, R.layout.list_choice_multiple,
            R.id.choice_text, terms) {

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        View v = super.getView(position, convertView, parent);

        icon = (ImageView)v.findViewById(R.id.choice_image);

        icon.setImageResource(R.drawable.delete_off);

        icon.setTag(R.drawable.delete_off);

        return v;
    }
});

deleteSelected() 内の getID() メソッドでアクセスできるように、各画像ビューの ID を設定するにはどうすればよいですか?

4

3 に答える 3

1

ListView にはgetFirstVisiblePositionメソッドがあり、これを使用して、リスト ビュー内の位置に基づいて子の位置を計算できます (これは、リスナーの onItemClicked メソッドに渡されるパラメーターです)。

int childIndex = listView.getFirstVisiblePosition() - position;

行ビュー (アダプターによって作成された ListView で使用されるビュー) の子をクリックしている場合、行が属する位置も知る必要があります。最も簡単な方法は、子のタグに位置を格納することです。 onClickListener を設定するとき

于 2014-01-03T13:44:01.987 に答える
0

基本的に最初に、アダプタの getView() でリスト項目の ImageView の onClickListener を設定する必要があります。

onClickListener を使用すると、onClick() の関数パラメーターとしてクリックされたビューを取得できます。このビュー (ImageView) オブジェクトに別の背景を設定します。

これが明確であることを願っています。お知らせ下さい。

于 2014-01-03T14:08:57.973 に答える
0

簡単な答え: ImageView でクリックが発生すると書いています。ImageView は ListView に関連付けられていません。したがって、クリックと ListView の要素の間には関係がありません。ただし、ImageView をクリックすると、onClick は ListView 自体への参照を受け取ります。それで、あなたは何を達成しようとしていますか?もっと正確にお願いします。

于 2014-01-03T14:18:08.753 に答える