2012-03-06 8 views
1

私のアンドロイドアプリケーションではチェックボックスをオンにして、グループ要素の可視性をExpandableListViewに設定したいと思います。グループ要素のタイトルを設定したいチェックボックス名と同じです。グループ要素のExpandableListViewに可視性を設定したい

public void onCreate(Bundle savedInstanceState) { 
    try{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.detailnewslist); 

    SharedPreferences settings = getSharedPreferences("mysettings", MODE_WORLD_READABLE); 
    boolean checkBoxValue1=settings.getBoolean("c1",false); 
    boolean checkBoxValue2=settings.getBoolean("c2",false); 
    /*if(checkBoxValue1==true) 
    { 
     t1.setText(settings.getString("checkbox", "null")); 
    }else{t1.setVisibility(View.GONE);} 
    if(checkBoxValue2==true){ 
     t2.setText(settings.getString("checkbox1", "null")); 
    }else{t2.setVisibility(View.GONE);} 
    */ 
    SimpleExpandableListAdapter expListAdapter = 
      new SimpleExpandableListAdapter(
        this, 
        createGroupList(),    // Creating group List. 
        R.layout.group_row,    // Group item layout XML.   
        new String[] { "Group Item" }, // the key of group item. 
        new int[] { R.id.row_name }, // ID of each group item.-Data under the key goes into this TextView.     
        createChildList(),    // childData describes second-level entries. 
        R.layout.child_row,    // Layout for sub-level entries(second level). 
        new String[] {"Sub Item"},  // Keys in childData maps to display. 
        new int[] { R.id.grp_child}  // Data under the keys above go into these TextViews. 
       ); 
      setListAdapter(expListAdapter);  // setting the adapter in the list. 

     }catch(Exception e){ 
      System.out.println("Errrr +++ " + e.getMessage()); 
     } 
    } 

    /* Creating the Hashmap for the row */ 
    @SuppressWarnings("unchecked") 
    private List createGroupList() { 

      ArrayList result = new ArrayList(); 
      for(int i = 1 ; i < 16 ; ++i) { // 15 groups........ 
      HashMap m = new HashMap(); 
      m.put("Group Item","Group I " + i); // the key and it's value. 
      result.add(m); 
      } 
      return (List)result; 
    } 

    /* creatin the HashMap for the children */ 
    @SuppressWarnings("unchecked") 
    private List createChildList() { 

     ArrayList result = new ArrayList(); 
     for(int i = 1 ; i < 16 ; ++i) { // this -15 is the number of groups(Here it's fifteen) 
      /* each group need each HashMap-Here for each group we have 3 subgroups */ 
      ArrayList secList = new ArrayList(); 
      for(int n = 0 ; n < 5 ; n++) { 
      HashMap child = new HashMap(); 
      child.put("Sub Item", "Sub Item " + n);   
      secList.add(child); 
      } 
     result.add(secList); 
     }   
     return result; 
    } 
    public void onContentChanged () { 
     System.out.println("onContentChanged"); 
     super.onContentChanged();   
    } 
    /* This function is called on each child click */ 
    public boolean onChildClick(ExpandableListView parent, View v, int groupPosition,int childPosition,long id) { 
     System.out.println("Inside onChildClick at groupPosition = " + groupPosition +" Child clicked at position " + childPosition); 
     return true; 
    } 

    /* This function is called on expansion of the group */ 
    public void onGroupExpand (int groupPosition) { 
     try{ 
      System.out.println("Group exapanding Listener => groupPosition = " + groupPosition); 
     }catch(Exception e){ 
      System.out.println(" groupPosition Errrr +++ " + e.getMessage()); 
     } 
} 

答えて

1

ExpandableListViewの重要な方法は次のとおりです。

public View getGroupView(int groupPosition, boolean isExpanded, View convertView, 
     ViewGroup parent) { ... } 

は、たとえば、子が存在しない開示を表示/非表示にする方法it is implemented、参照してください。

関連する問題