2012-09-25 18 views
5

Liste görünümünde belirli bir öğenin arka plan rengini ayarlamak istiyorum.Belirli bir öğenin arka plan rengini liste görünümüne göre konumlandırma nasıl ayarlanır?

Benim listview bir ArrayList kullanarak ArrayAdapter tarafından oluşturulur.

Ben arka plan rengini değiştirmek için plan liste görünümü belirli bir öğeyi var.

ben listedeki öğenin konumunu biliyoruz.

Bu liste görünümü oluşturmak için benim kodudur.

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

Teşekkür ederiz! onCreate (kullanılırsa

[değiştir]

this post göre, setSelection kullanılarak, çalışma etrafında "PullToRefreshListView yöntemi onAttachedToWindow kaldırma") hiçbir etki yapar. Çözümü tam olarak anlamadım. Bunu nasıl başarabilirim diye sorabilir miyim? Ben Activity bir alt sınıfım, bu yüzden artık başka bir sınıfın alt sınıfını oluşturamıyorum.

+0

bu http://stackoverflow.com/questions/6055277/set-a-background-color-to-a-selected-listview-item-in-android –

+0

denedim, denedim, myList üzerinde nullpointerexception veriyor . .getSelectedView() setBackgroundColor (GetResources() getColor (Color.RED).); – ssgao

cevap

2

Sen ArrayAdapter alt sınıf ve getView(...) yöntemini geçersiz gerekecektir. Sadeliğin iyiliği için temel sınıf uygulamasına geçebilir ve geri dönen View için arka plan rengini ayarlayabilirsiniz.

Düzenleme: siyah ve beyaz alternatif Aşağıdaki örnek renkler öğelerinin arka planlar. Eğer ListItem seçtiğinizde

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); 
    } 
} 
+0

Zaten alt sınıflanmış bir etkinlik var – ssgao

+0

Aynı şey değil. Alt Sınıflandırma ArrayAdapter, gerekli yöntemi geçersiz kılmanıza olanak tanır. Alt Sınıf Etkinliği size herhangi bir şey getirmez. İşte. – zienkikk

+0

Um .. Sadece bir sınıfı sınıflandırabilirim demek istiyorum. Bu yüzden, Etkinlik alt sınıfını oluşturduysam, ArrayAdapter alt sınıfını artık ekleyemiyorum – ssgao

0

Bu kod içindir.

bu kodu deneyin

...

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)); 
      } 
      } 
      }); 

iyi şanslar.

İlgili konular