2012-12-06 38 views
2

我有一个可扩展列表,并且当您单击某个子项目而不是一个组时,我想要更改整个布局。我尝试选择像这样的子项目,它会更改所有项目。在可扩展列表中更改自定义项目的整个布局onchildclicklistener

while(parent.getChildAt(i)!=null){ 
    do something.. 
} 

下面是代码:

private OnChildClickListener menuListOnChildClickListener = new OnChildClickListener() 
{ 
    public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) 
    { 
     //change whole layout of whole children with an inflator 
     //change the one clicked with another inflator 
     v.setBackgroundColor(Color.BLACK); 
     Toast.makeText(getApplicationContext(), "Tıklandı"+childPosition, Toast.LENGTH_SHORT).show(); 
     switch(childPosition){ 
      case 1: 
      relativeLayout_sagOrtaEkranlar.setVisibility(v.INVISIBLE); 
      relativeLayout_sagOrtaAnasayfa.setVisibility(v.VISIBLE); 
      break; 
      case 2: 
      relativeLayout_sagOrtaEkranlar.setVisibility(v.VISIBLE); 
      relativeLayout_sagOrtaAkilliEv.setVisibility(v.VISIBLE); 
      relativeLayout_sagOrtaAkilliEvPerde.setVisibility(v.INVISIBLE); 
      relativeLayout_sagOrtaAnasayfa.setVisibility(v.INVISIBLE); 
      break; 
      case 3: 
      relativeLayout_sagOrtaEkranlar.setVisibility(v.VISIBLE); 
      relativeLayout_sagOrtaAkilliEv.setVisibility(v.INVISIBLE); 
      relativeLayout_sagOrtaAkilliEvPerde.setVisibility(v.VISIBLE); 
      relativeLayout_sagOrtaAnasayfa.setVisibility(v.INVISIBLE); 
      break; 
      default: 
      break; 
     } 
     return true; 
    } 

任何解决方案?

回答

0

为了了解孩子的项目,我不得不数的大小(尺寸是一个静态变量没有大小()函数)适配器我的适配器的第一个孩子,并同时改变布局从主childOnClick称之为:

int i=0; 
while(parent.getChildAt(i)!=null){ 
    if((i>0 && i<ExpandListAdapter.size)){ 
     c=(ImageView) parent.getChildAt(i).findViewById(R.id.iv_listChild); 
     c.setVisibility(View.VISIBLE); 
     d=(ImageView) parent.getChildAt(i).findViewById(R.id.iv_listChild2); 
     d.setVisibility(View.INVISIBLE); 
    } 
    i++; 
}