1

ListView があり ArrayList<Integer>、アイテムの位置が配列に存在する場合、そのアイテムの背景は緑になり、それ以外の場合は赤になることに基づいて、各アイテムに異なる色を設定したいと思います。以前SetListColorはそうしていましたが、うまくいきません。

public class createtarget extends ListActivity
{

         String [] Target;
    ListView lstView;
    public static ArrayList<Integer> coloredItems;


    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.createtarget);

        coloredItems = new ArrayList<Integer>();
        coloredItems.add(1);

        lstView = getListView();    
        lstView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);        
        lstView.setTextFilterEnabled(true);

        SetListColor(this.findViewById(android.R.id.content)); // Get View of ListView

        Target=new String []{"A","B","C"};

        setListAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_checked, Target));

    }


public void SetListColor(View v)
     {
        for(int i=0;i<lstView.getCount();i++)
        {   
            System.out.println("Item is: "+i);
         if(createtarget.coloredItems.contains(i))
                    v.setBackgroundColor(Color.GREEN);
         else
             v.setBackgroundColor(Color.Red); 
        }
     }
4

3 に答える 3

1

ビューのランタイムを修正するのではなく、Base Adepterを使用 してください。

そのSOの質問を参照してください

Android : ArrayAdapter を使用した ListView の代替色

于 2013-05-28T18:23:53.157 に答える