2014-02-25 34 views
1

我想實現TabHost下ExpandableListView ...標籤運作良好,名單中還產生,但是當我去ExpandList點擊GroupItem,這不行......的Android展開擴張的ListView

我如何可以實現此...

我的代碼是在這裏....

public class Setting extends Fragment { 

    ExpandableListAdapter listAdapter; 
    ExpandableListView expListView; 
    List<String> listDataHeader; 
    HashMap<String, List<String>> listDataChild; 


    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.setting, null); 
    expListView = (ExpandableListView) v.findViewById(R.id.lvExp); 






     prepareListData();  

    // preparing list data 
    // 

    listAdapter = new ExpandableListAdapter(getActivity(), listDataHeader, listDataChild); 

    // setting list adapter 
    expListView.setAdapter(listAdapter); 


    expListView.setOnGroupClickListener(new OnGroupClickListener() { 

     @Override 
     public boolean onGroupClick(ExpandableListView parent, View v, 
       int groupPosition, long id) { 
      // Toast.makeText(getApplicationContext(), 
      // "Group Clicked " + listDataHeader.get(groupPosition), 
      // Toast.LENGTH_SHORT).show(); 
      return false; 
     } 
    }); 

    // Listview Group expanded listener 
    expListView.setOnGroupExpandListener(new OnGroupExpandListener() { 

     @Override 
     public void onGroupExpand(int groupPosition) { 
      Toast.makeText(getActivity(), 
        listDataHeader.get(groupPosition) + " Expanded", 
        Toast.LENGTH_SHORT).show(); 
     } 
    }); 

    // Listview Group collasped listener 
    expListView.setOnGroupCollapseListener(new OnGroupCollapseListener() { 

     @Override 
     public void onGroupCollapse(int groupPosition) { 
      Toast.makeText(getActivity().getApplicationContext(), 
        listDataHeader.get(groupPosition) + " Collapsed", 
        Toast.LENGTH_SHORT).show(); 

     } 
    }); 

    // Listview on child click listener 
    expListView.setOnChildClickListener(new OnChildClickListener() { 

     @Override 
     public boolean onChildClick(ExpandableListView parent, View v, 
       int groupPosition, int childPosition, long id) { 
      // TODO Auto-generated method stub 
      Toast.makeText(
        getActivity().getApplicationContext(), 
        listDataHeader.get(groupPosition) + " : "+ listDataChild.get(listDataHeader.get(groupPosition)).get(
            childPosition), Toast.LENGTH_SHORT).show(); 


      return false; 
     } 
    }); 



    return v; 
    } 


    private void prepareListData() { 
     // TODO Auto-generated method stub 
     listDataHeader = new ArrayList<String>(); 
     listDataChild = new HashMap<String, List<String>>(); 

     // Adding child data 
     listDataHeader.add("Battery Remaining"); 
     listDataHeader.add("Set Alarm Distance"); 
     listDataHeader.add("Set Alarm Tone"); 

     // Adding child data 
     List<String> top250 = new ArrayList<String>(); 
     top250.add("The Shawshank Redemption"); 
     top250.add("The Godfather"); 
     top250.add("The Godfather: Part II"); 
     top250.add("Pulp Fiction"); 
     top250.add("The Good, the Bad and the Ugly"); 
     top250.add("The Dark Knight"); 
     top250.add("12 Angry Men"); 

     List<String> nowShowing = new ArrayList<String>(); 
     nowShowing.add("The Conjuring"); 
     nowShowing.add("Despicable Me 2"); 
     nowShowing.add("Turbo"); 
     nowShowing.add("Grown Ups 2"); 
     nowShowing.add("Red 2"); 
     nowShowing.add("The Wolverine"); 

     List<String> comingSoon = new ArrayList<String>(); 
     comingSoon.add("2 Guns"); 
     comingSoon.add("The Smurfs 2"); 
     comingSoon.add("The Spectacular Now"); 
     comingSoon.add("The Canyons"); 
     comingSoon.add("Europa Report"); 

     listDataChild.put(listDataHeader.get(0), top250); // Header, Child data 
     listDataChild.put(listDataHeader.get(1), nowShowing); 
     listDataChild.put(listDataHeader.get(2), comingSoon); 
    } 

我的目錄不擴大.....幫我PLZ ...

+0

你有沒有試過調試代碼,並通過它? –

回答

0

試圖實現y中OnGroupClickListener接口我們ExpandableListAdapter並覆蓋
以下方法:

onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) ; 
    onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id); 
0

設置在佈局機器人:可調焦= 「假」 和android:focusableInTouchMode = 「false」 表示所有可點擊項目一樣,按鈕的ImageButton的 排佈局..