5

リストビューの特定のアイテムの背景色を設定したい。

リストビューは、ArrayList を使用して ArrayAdapter によって生成されます。

リストビューに、背景色を変更する予定の特定のアイテムがあります。

リスト内のアイテムの位置を知っています。

これは、リストビューを生成するための私のコードです。

respondMessageListView = (ListView) findViewById(R.id.respondMessageListView);
respondMessageListView.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, autoRespondMessages.getMessages()));

ありがとうございました!

[編集]

この投稿によると、onCreate() で使用されている場合、setSelection を使用しても効果はありません。回避策は「メソッドonAttachedToWindowを削除するPullToRefreshListView」ことです。解決策がよくわかりません。どうすればこれを達成できますか?私は のサブクラスなActivityので、他のクラスをサブクラス化することはできません。

4

2 に答える 2

2

getView(...)メソッドをサブクラス化ArrayAdapterし、オーバーライドする必要があります。簡単にするために、基本クラスの実装を呼び出して、返された の背景色を設定することができます。View

編集: 次の例では、項目の背景に黒と白を交互に色付けします。

private class MyAdapter extends ArrayAdapter {

    ...

    public View getView(int position, View convertView, ViewGroup parent) {
        View v = super.getView(position, convertView, parent);
        v.setBackgroundColor(position % 2 == 0 : 0xff000000, 0xffffffff);
    }
}
于 2012-09-25T04:16:34.047 に答える
0

このコードは、listitemを選択するときのものです。

このコードを試してください...

listview.setOnItemClickListener(new OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> myAdapter, View myView, int pos, long mylng) {

             if( pos == 1) {
                   // to change the listview background
                   listview.setBackgroundColor(getResources().getColor(R.color.your_color_id));

                   // to change the selected item background color
                   myView.setBackgroundColor(getResources().getColor(R.color.your_color_id));
             }
            }
          });

幸運を。

于 2012-09-25T05:21:26.867 に答える