listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, final View view, int position, long id) {
View v;
int count = parent.getChildCount();
v = parent.getChildAt(position);
parent.requestChildFocus(v, view);
v.setBackground(res.getDrawable(R.drawable.transparent_button));
for (int i = 0; i < count; i++) {
if (i != position) {
v = parent.getChildAt(i);
v.setBackground(res.getDrawable(R.drawable.not_clicked));
}
}
}
});
Temel olarak, biri şeffaf, diğeri istenen renk olmak üzere iki Çekilebilir Tablo oluşturun . Tıklanan konumda ( int positiontanımlandığı gibi) odak isteyin ve söz konusu satırın rengini değiştirin. Sonra ebeveynin üzerinden yürüyün ListViewve diğer tüm satırları buna göre değiştirin. Bu, bir kullanıcının listviewbirden çok kez tıklamasını hesaba katar. Bu, içindeki her satır için özel bir düzen ile yapılır ListView. (Çok basit, sadece yeni bir düzen dosyası oluşturun TextView- odaklanabilir veya tıklanabilir olarak ayarlamayın!).
Özel adaptör gerekmez - kullanın ArrayAdapter
firstPositionbunuint firstPosition = listView.getFirstVisiblePosition() - listView.getHeaderViewsCount();düzeltmek olmalıdır .