2016-03-29 9 views
0

My log when the intent actually works Bu son derece merak ettiğim garip bir soru. Profillerin bir listesini görüyorum ve belirli bir bilgiyi tıkladığımda o profili tek başına görmek istiyorum. Liste görünümünde bir öğeyi seçmeye çalıştığımda, genellikle işe yaramıyor, ancak bazen (10'da yaklaşık 1) bazı garip nedenlerden dolayı çalışıyor. Hangisi daha sinir bozucu. Bu problemi olan oldu mu? Teşekkür ederim. (Bu düşünceye benzer bir soru yayınladım, hiç çalışmadı, lütfen çoğaltmayın, teşekkür ederim).Listview onItemClick beklendiği gibi çalışmaz

public class CowListView extends ListActivity { 

    RegisterCowAdapter cowAdapter; 
    private DataBaseHelper databaseHelper; 
    public ListView listView; 
    TextView student_Id; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.cow_list_item); 
     cowAdapter = new RegisterCowAdapter(this); 

     cowAdapter.open(); 
     updateCowUI(); 
     listView = (ListView) findViewById(android.R.id.list); 

     listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      public void onItemClick(AdapterView<?> parent, View view, 
            int position, long id) { 
       student_Id = (TextView) view.findViewById(R.id.cowtagnolist); 
       String studentId = student_Id.getText().toString(); 
       Intent i = new Intent(view.getContext(), CowProfile.class); 
       Toast.makeText(CowListView.this, "Clicked", Toast.LENGTH_SHORT).show(); 
       i.putExtra("student_Id", Integer.parseInt(studentId)); 
       Log.d("StartingCow", studentId); 
       startActivityForResult(i, 0); 

      } 

     }); 

Sen Match_parent olarak ListeGörünüm genişliğini tutmalı u wrap_content eğer, onun çocuk boyutu veya genişliği ötesine olayı tıklayın almazsınız

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/RelativeLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" 
    android:descendantFocusability="blocksDescendants" 
    android:longClickable="true" 
    android:focusableInTouchMode="false" 
    android:clickable="false" 
    android:focusable="false"> 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 
    </ListView> 

    <TextView 
     android:id="@+id/cowtagnolist" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:textColor="@color/black" 
     android:clickable="true"> 
    </TextView> 

    <TextView 
     android:id="@+id/cowdoblist" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"  
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="17dp" 
     android:clickable="true" 
     android:textColor="@color/black">  
    </TextView> 
</LinearLayout> 
+1

vermedi aşağıda görüldüğü gibi çocuk öğeleri uygulanmıştır gerekir? –

+1

lütfen öğe adaptörünüzün düzenini gönderin, düzeninizle çalışan bir örnek hazırladım ancak orada ne olduğunu kontrol etmek için adaptör düzeninize ihtiyacım var. –

+0

Merhaba, cevabınız için teşekkürler, ancak yukarıda yüklediğim xml'deki basit bir liste bağdaştırıcısı kullanıyorum? Yoksa bu yapma yöntemi doğru değil mi? Tekrar teşekkürler. – user3597639

cevap

0

XML. Ne düşündüğüm için bu sorun olabilir. Ur Liste görünümü tek satır düzeni de wrap_content genişliğinde çocuk görüntülerini içeriyorsa, sorun artabilir.

+0

Cevabınız için teşekkürler, ancak gerektiği gibi çalışmıyor. Niyet, liste görünümü üzerine bir süreliğine rasgele bastığımda ve neden emin olmadığımda işe yarıyor! Ayrıca, gerçekten çalıştığı zaman günlüğümü ekledim – user3597639

+0

Hata ayıklama yaptınız ve gerçekten clickListener'da devam edip etmediğini gördünüz. Veya bir Log.d ("Listview", "Clicked") yazdırır; OnItemClickListener –

+0

içinde sadece Bir süre sonra çalışırsa, tıklandığında günlüğünde söyler! Ama normalde kesinlikle hiçbir şey olmaz. – user3597639

0

belki sorun xml'de mi? longClickable = "true" android: yerine uzun tıklama her zamanki yaparken tıklanabilir = "false"

1 10 başarılı tıklama benziyor gerçekleşmesi

Ben

android sonraki dizeleri görüyoruz. Gerçek

android için sorun değişikliği tıklanabilir çözmek için: i soru doğru anlasalardı tıklanabilir = "true"

- neyin yanlış olduğunu anladım

+0

Cevabınız için teşekkürler, ancak gerektiği gibi sorunsuz çalışmıyor! Cevabınız için teşekkürler. Bir süre liste görünümünde rastgele bastığımda hala rastgele çalışıyor mu? Ayrıca gerçekten çalıştığı zaman günlüğümü ekledim – user3597639

0

o yardımcı olmalıdır, ben tanımlamak vermedi benim alt nesneler ve kök öğem doğru şekilde. Umarım bu, benzer bir sorunu olan herkese yardımcı olur. Kök öğesinde

android:clickable="false" 
android:focusable="false" 
android:focusableInTouchMode="false" 

: bunu debug

android:clickable="false" 
android:descendantFocusability="blocksDescendants" 
android:focusable="false" 
android:focusableInTouchMode="false"