2012-01-08 19 views
12

kullanarak ExpandableListView öğesinin genişletilmiş grup görünümünü alın Bir ExpandableListView kullanıyorum ve bir grubu genişletirken (grup görüntüsünün parçası olan görüntüyü) taşıma işlemini başarısızlıkla gerçekleştirmeye çalışıyorum. İşte onGroupExpand

benim kodudur:

my_list_view.setOnGroupExpandListener(new OnGroupExpandListener() 
{ 
    @Override 
    public void onGroupExpand(int groupPosition) 
    { 
     Toast.makeText(getBaseContext(), "Group " + my_list_view.getGroupId(groupPosition), Toast.LENGTH_SHORT).show(); 
    } 
}); 

Temelde benim sorun: kullanabileceğim tek değişken groupPosition olduğunda nasıl, genişletilmiş Grup görünümü erişebilir?

Özel olarak uyarlayacağınız herhangi bir adaptör benzeri bir yanıt kabul edilmeyecektir. Bunu zaten denedim ve sorunum için çalışmıyor. İhtiyacım olan onGroupExpand olayını dinlemek.

+0

unutun

@Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { if (isExpanded) { mContext.getResources().getDrawable(R.drawable.arrow) doSomething(); } else { doSomethingElse(); } } 

, yok. Sanırım kullanmam gereken fonksiyon 'getGroupView (int groupPosition, boolean isExpanded, ViewViewView, ViewGroup üst bilgisi)' dır, ancak şu ki sadece 'groupPosition' var. Sanırım, 'Expanded' true olarak ayarlanmalı, ama' convertView' ve 'parent' hakkında ne yapılmalıdır ??? – thomaus

+0

herhangi bir çözümün var mı? –

+0

Bu cevabı kontrol edin. Benimle çalışır (http://stackoverflow.com/a/22912225/5621162) –

cevap

11

Sonunda yaptığım şey, özel bir bağdaştırıcı oluşturduğunuzda getGroupView numaralı telefondan boolean isExpanded kullanıyor. Etkinlikte yapmak yerine, işleri istediğim şekilde yapabildim. Bağlamı oluşturduğunuz içeriği kaydettiyseniz, kaynakları almak için bunu kullanabilirsiniz. Bunun nasıl yapılacağını (zaten biraz arabası oldu) benim diğer yanıt çok daha kolay, bu yüzden gerçekten bu bir :)

+3

Teşekkürler. Bu çözümü çoktan bir süre önce denedim ve buggy + bu sınıftaki grup görünümünü değiştirmek mantıklı değil. OnGroupExpand etkinliğinin içinde olmalıdır. – thomaus