2015-12-11 6 views
11

Sayfamda bir liste görünümü olan bir pop-up var. Ben ayrı bir xml içinde pop up tasarımı oluşturdum ve ana sayfamda bazı buton tıklaması üzerine yükledim. Açılır pencerede, her satırın bir resme ve bir metin görünümüne sahip bir listesi vardır. Ben android 4.1 listview içinde satır seçimi almak mümkün değilim ama 5.0 çalışıyor. Bana çözüm öneren var mı? ListeGörünüm:, 4.1'de bir açılır pencerede liste görünümünde satır seçemiyor ancak android'de çalışıyor 5.0

<ListView android:id="@+id/lstSites" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:fastScrollEnabled="true" 
     android:layout_margin="5dp" 
     android:descendantFocusability="blocksDescendants"></ListView> 
</LinearLayout> 

ListeGörünüm Öğe:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:descendantFocusability="blocksDescendants" 
android:focusable="false" 
android:focusableInTouchMode="false"> 
<ImageView 
    android:id="@+id/thumbImage" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_centerVertical="true" 
    android:layout_marginRight="10dp" 
    android:focusable="false" 
    android:focusableInTouchMode="false"/> 
<TextView 
    android:id="@+id/tvSite" 
    android:textSize="20dp" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="10dp" 
    android:text="Name" 
    android:focusable="false" 
    android:focusableInTouchMode="false"/> 

satır tıklama Listner ekleyerek:

lstSiteMenu = (ListView) popupView.findViewById(R.id.lstSites); 

      adapter = new MenuItemsAdapter(SiteActivity.this, arrMenu); 
      // Attach the adapter to a ListView 
      lstSiteMenu.setAdapter(adapter); 
      lstSiteMenu.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> parent, View view, 
             final int position, long id) { 
      } 
+0

LogCat herhangi bir hata dan bu özellikleri kaldırmak?Seçtiğiniz satırın ne zaman söylediğinizi seçinEtemClick çalışmıyor ya da pozisyon almıyor musunuz? – virendrao

+1

Bunu 'android: descendantFocusability = 'blocksDescendants'' 'ListView''den kaldırın. – Piyush

cevap

0

Sen ListView den android:descendantFocusability="blocksDescendants" kaldırmak gerekir.

Ayrıca ImageView ve TextView içinde satır düzenden android:focusable="false" ve android:focusableInTouchMode="false" çıkarın.

liste öğesi tıklanabilir olması gerekiyordu, Odağı liste görünümü elde

1

kaldırmayı bu özellik, metin ve ImageView gelen android:descendantFocusability="blocksDescendants" ve

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

elde devre dışı vardır.

Ve Bu örnek örnektir deneyin

String names[] ={"A","B","C","D"}; 
     AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this); 
     LayoutInflater inflater = getLayoutInflater(); 
     View convertView = (View) inflater.inflate(R.layout.row_file, null); 
     alertDialog.setView(convertView); 
     alertDialog.setTitle("List"); 
     ListView lv = (ListView) convertView.findViewById(R.id.listView); 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,names); 
     lv.setAdapter(adapter); 
     alertDialog.show(); 

aksi takdirde kod gayet iyi. işe yarıyor. Daha fazla ayrıntı için bu link aracılığıyla

gidin.

Bunun için başka bir official link.

+0

bunu denediniz mi? @pankaj –

1

tüm çözümleri deneyin:


popupwindow.setFocusale(true); 
listView xml : "android:focusable="true" 

lstSiteMenu.setOnItemClickListener
yerine Adaptörleri getView gidip eklemek kullanmayan

convertView.setOnClickListener 

Umarım size yardımcı olacaktır! adaptör sınıfının

public class MenuItemsAdapter extends Base Adapter{ 
     @Override 
     public View getView(final int position, View convertView, ViewGroup parent) { 
      /* 
          Paste your adapter code 
      */ 
       customView.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 
        Log.v("log", "You clicked at pos "+position); 
       } 
      }); 
     } 
} 

yılında

-1

Seti satır onclick dinleyici Bu kod tüm SDK sürümleriyle çalıştı.

Ayrıca xml dosyaları

android:descendantFocusability="blocksDescendants" 
android:focusable="false" 
android:focusableInTouchMode="false" 
İlgili konular