2

Android の ListView (または ListActivity) でセルの背景色または画像を設定するにはどうすればよいですか?

これは非常に単純な ListView で、項目が数個しかなく、その他のカスタマイズはありません。テキストやテキストの色やサイズなどを変更したくありません。ListView のセルの色や背景画像を変更したいだけです。

(レイアウト XML ではなく)コードでこれを行う最も簡単な方法は何ですか?

ListActivity で使用しているコードは次のとおりです。

listitems.add("1");
listitems.add("2");
listitems.add("3");

this.getListView().setChoiceMode(ListView.CHOICE_MODE_SINGLE);

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

2 に答える 2

4

次のようなもので ArrayAdapter を拡張してみてください。

public static class MyAdapter extends ArrayAdapter<String>{

    ...

    @Override
    public View getView(int p, View v, ViewGroup g){
        v = super.getView(p, v, g);
        v.setBackgroundColor(0xffff0000);
        return v;
    }

}

これにより、たとえば、各アイテム ビューの背景が真っ赤になります。

于 2012-10-15T21:29:57.793 に答える
2

私を正しい方向に導いてくれたnewbycaに感謝します。これは私が探していたものであり、実装するのが最も簡単なコードであるため、実際には最良の答えです:

setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_checked, listitems) {
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        View v = super.getView(position, convertView, parent);
        //v.setBackgroundColor(0xffff0000);  // COLOR
        v.setBackgroundResource(R.drawable.plaincell); // IMAGE
        return v;
    }
});
于 2012-10-15T21:56:39.987 に答える