0

ExpandableListView通常のクリックでクリックされたグループが展開され、他のすべてが折りたたまれ、長いクリックでクリックされたグループのみが展開されるように変更したいと思います。ある場合、これは非常に簡単ですgetOnClickListener()

OnClickListener oldListener = view.getOnClickListener(); // DOESN"T EXIST
view.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
        collapseAll();
        oldListener.onClick(v);
    }
}
view.setOnLongClickListener(new OnLongClickListener() {
    @Override
    public boolean onLongClick(View v) {
        oldListener.onClick(v);
        return true;
    }
}

しかし、そのような方法はありません。を介して行うこともできますがExpandableListView.expandGroup(int position)、ビューから位置を見つける必要があるため、より複雑になります。もっと良いアイデアはありますか?

4

1 に答える 1

0

ビューの位置をそのタグに設定することで、ビュー自体にビューの位置をキャッシュできます。

view.setTag(position);

おそらくアダプタークラスで、子ビューを追加するときにこれを行う必要があります..

次に、位置が必要な場合は、呼び出してビュー自体から取得しますview.getTag();

于 2012-09-21T19:09:50.243 に答える