3

分離リストを使用していますが、複数のヘッダーがあり、選択したリストアイテムのヘッダーの色を変更したいと思います。これがヘッダーの位置を見つけることができる私のコードであり、リストの最初のセクションが選択されたときに最初のヘッダーの色を変更することができます。リストの別のセクションを選択すると、別のヘッダーの色を変更できません。

これでは、ArrayAdapterを使用しています。つまり、ビューを再利用していません。一度作成したビューの場合、変更されません。したがって、このための条件とループの使用方法は誰でも提案できます。

これがSepratorListAdapterクラスの私のviewメソッドです

public View getView(int position, View convertView, ViewGroup parent) {
    int sectionnum = 0;



    for(Object section : this.sections.keySet()) {
        Adapter adapter = sections.get(section);
        int size = adapter.getCount() + 1;




        if(position==0)
        {
            TextView tv = (TextView)headers.getView(sectionnum, convertView, parent).findViewById(R.id.txt_week);
            if(sectionnum==header_pos)
            {   


                headers.getView(sectionnum, convertView, parent).setBackgroundResource(R.drawable.red_strip);



            }
            else
            {

                headers.getView(sectionnum, convertView, parent).setBackgroundResource(R.drawable.gray_strip);


            }

            return headers.getView(sectionnum, convertView, parent);    
        }
        if(position < size)
        {

            return adapter.getView(position - 1, convertView, parent);
        }


        position -= size;
        sectionnum++;
    }
    return null;
}

解決策とトリックがありますので、提案してください。前もって感謝します。

4

0 に答える 0