Veritabanımdaki değerlerle doldurduğum bir ListView var. Veritabanı boşsa, ListView'in ilk öğesini "Veri yok" olarak ayarlıyorum. Bu öğeye tıklayarak devre dışı bırakmak istiyorum. ArrayAdapter kullandım. Yapmaya çalıştım, hepsi yanlış, ama yanlış bir şeydi. ListView'un isClickable'ı ve setEnabled'ı false olarak ayarlansa bile, kullanışsızdır. Ve OnItemClickListener için kodu diğer koşulda koydum, bu da liste öğesinin tıklanabilir olmasını engellemiyor. Birisi alternatif bir çözüm var mı? Teşekkürler!Android'de ListView'i tıklayarak nasıl devre dışı bırakılır?
cevap
yapın hiçbir şey yapmak:
@Override
public boolean isEnabled(int position) {
return false;
}
hep benim için çalışıyor.
gösterdi gibi boş Görünüm ayarlayabilir ve otomatik ele alınacaktır: deyim OnClick içinde listview girdisinin içeriğini kontrol etmek eğer Hayır' içeriyorsa
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="8dp"
android:paddingRight="8dp">
<ListView android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#00FF00"
android:layout_weight="1"
android:drawSelectorOnTop="false"/>
<TextView android:id="@android:id/empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF0000"
android:text="No data"/>
</LinearLayout>
yardım eder! Bu sadece soruya cevap vermekle kalmıyor, aynı zamanda boş bir listeyi işlemenin daha iyi bir yolunu da sunuyor! – chuky
Belki bir kullanabiliriz veri' başka return false için isEnabled işlevini kullanmak ArrayAdapter aramaları özel olarak olağan
sayede tıklama
tüm kolay devre dışı bırakmak istediğiniz zaman sonra false
dönmek o liste için Adaptör oluşturmak ve orada bu yöntemi
public boolean isEnabled(int position);
geçersiz! Benim ihtiyacına göre böyle yaptılar
Çok teşekkürler! Benim için çalıştı, tüm yukarıda benim için çalışmadı .. –
Kötü! Bu, kaydırmayı önler. –
list.setEnabled (yanlış) Bu kabul cevap olmalıdır size bazı nasıl
@Override
public boolean isEnabled(int position) {
if(data.get(position).isClickable==false)
{
return false;
}
return super.isEnabled(position);
}
benim için de çalıştı! –
Rocking ... bu iyi çalışıyor .. – vabhavsingh
Devre dışı bırakıldıktan sonra yeniden nasıl etkinleştirebilirim? –