2012-06-13 12 views
6

Böyle bir şeye ulaşmaya çalışıyorum. Genişletilebilir Liste, belirli kategorilerin adlarından oluşur ve bir ebeveyn tıklandığında, o kategorideki tüm çocukların listesini gösterir. Şimdi, bir çocuğu dinamik olarak herhangi bir kategoriye eklemek istediğimi varsayalım? Bunu nasıl yaparım? Listede her ebeveynin altından yeni bir çocuğun eklenmesiyle ilgili bir düğmeyi tutuyor muyum?Android ExpandableListView Düğmeyle Üst Düğme

Ama farklı forumlarda dolaşarak, her ebeveynin içinde bir düğme tıklatma işleyicisi ayarlamak gerçekten kolay olmadığını fark ettim. Ama bu tek yol buysa, lütfen bana örnek bir kod verebilir misiniz?

Bu konuyu buldum ancak kodumda uygulayamadım. Android Row becomes Unclickable with Button

+0

? Bir imleçten mi? Dizilerle mi? – Barak

+0

Diziler kullanıyorum. – Swayam

cevap

6

Grup görünümüne bir düğme eklemek o kadar da zor olmamalıdır.

Aşağıdakilerin çalışması gerektiğine inanıyorum (her ne kadar bir sınama için ExpandableListView dizini kullanan bir projem yok).

Grup satır düzeninizi bilmiyorum, bu nedenle referans amacıyla burada bir tane oluşturacağım.

group_layout.xml Bağdaştırıcınızla adresinin getGroupView yönteminde Sonra

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/test" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" > 
    <TextView 
     android:id="@android:id/text1" 
     android:layout_width="wrap_content" 
     android:layout_height="35dp" 
     android:focusable="false" 
     android:focusableInTouchMode="false" 
     android:gravity="center_vertical" 
     android:paddingLeft="?android:attr/expandableListPreferredItemPaddingLeft" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 
    <Button 
     android:id="@+id/addbutton" 
     android:layout_width="wrap_content" 
     android:layout_height="35dp" 
     android:focusable="false" 
     android:focusableInTouchMode="false" 
     android:text="Add" 
     android:textSize="12dp" /> 
</LinearLayout> 

: Nasıl listeyi doldururken

public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { 
    if (convertView == null) { 
     View convertView = View.inflate(getApplicationContext(), R.layout.group_layout, null); 
     Button addButton = (Button)convertView.findViewById(R.id.addButton); 

     addButton.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       // your code to add to the child list 
      } 
     }); 
    }   
    TextView textView = (TextView)convertView.findViewById(R.id.text1); 
    textView.setText(getGroup(groupPosition).toString()); 
    return convertView; 
} 
İlgili konular