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 position
tanımlandığı gibi) odak isteyin ve söz konusu satırın rengini değiştirin. Sonra ebeveynin üzerinden yürüyün ListView
ve diğer tüm satırları buna göre değiştirin. Bu, bir kullanıcının listview
birden ç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
firstPosition
bunuint firstPosition = listView.getFirstVisiblePosition() - listView.getHeaderViewsCount();
düzeltmek olmalıdır .