2011-10-05 2 views
3
public class ApisimpleActivity extends ExpandableListActivity { 

    ExpandableListAdapter mAdapter; 
Button btn; 
CheckBox chk1; 
String l=""; 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // Set up our adapter 
     setContentView(R.layout.main); 
     btn=(Button)findViewById(R.id.button); 
     btn.setOnClickListener(new OnClickListener(){ 

      @Override 
      public void onClick(View arg0) { 
       // TODO Auto-generated method stub 
      int i=getExpandableListView().getChildCount(); 
      int k=0; 
      //Toast.makeText(ApisimpleActivity.this, "hello"+i, Toast.LENGTH_LONG).show(); 

      Toast.makeText(ApisimpleActivity.this, k+"",Toast.LENGTH_LONG).show(); 
      }  }); 
     mAdapter = new MyExpandableListAdapter(); 
     setListAdapter(mAdapter); 
     registerForContextMenu(getExpandableListView()); 
    } 

    @Override 
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 
     menu.setHeaderTitle("Sample menu"); 
     menu.add(0, 0, 0, "Hello World"); 
    } 

    @Override 
    public boolean onContextItemSelected(MenuItem item) { 
     ExpandableListContextMenuInfo info = (ExpandableListContextMenuInfo) item.getMenuInfo(); 

     String title = ((TextView) info.targetView).getText().toString(); 

     int type = ExpandableListView.getPackedPositionType(info.packedPosition); 
     if (type == ExpandableListView.PACKED_POSITION_TYPE_CHILD) { 
      int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition); 
      int childPos = ExpandableListView.getPackedPositionChild(info.packedPosition); 
      Toast.makeText(this, title + ": Child " + childPos + " clicked in group " + groupPos, 
        Toast.LENGTH_SHORT).show(); 
      return true; 
     } else if (type == ExpandableListView.PACKED_POSITION_TYPE_GROUP) { 
      int groupPos = ExpandableListView.getPackedPositionGroup(info.packedPosition); 
      Toast.makeText(this, title + ": Group " + groupPos + " clicked", Toast.LENGTH_SHORT).show(); 
      return true; 
     } 

     return false; 
    } 

    /** 
    * A simple adapter which maintains an ArrayList of photo resource Ids. 
    * Each photo is displayed as an image. This adapter supports clearing the 
    * list of photos and adding a new photo. 
    * 
    */ 
    public class MyExpandableListAdapter extends BaseExpandableListAdapter { 
     // Sample data set. children[i] contains the children (String[]) for groups[i]. 
     private String[] groups = { "People Names", "Dog Names", "Cat Names", "Fish Names" }; 
     private String[][] children = { 
       { "Arnold", "Barry", "Chuck", "David" }, 
       { "Ace", "Bandit", "Cha-Cha", "Deuce" }, 
       { "Fluffy", "Snuggles" }, 
       { "Goldy", "Bubbles" } 
     }; 
     View v; 


     public Object getChild(int groupPosition, int childPosition) { 
      return children[groupPosition][childPosition]; 
     } 

     public long getChildId(int groupPosition, int childPosition) { 
      return childPosition; 
     } 

     public int getChildrenCount(int groupPosition) { 
      return children[groupPosition].length; 
     } 

     public TextView getGenericView() { 
      // Layout parameters for the ExpandableListView 
      AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
        ViewGroup.LayoutParams.FILL_PARENT, 64); 

      TextView textView = new TextView(ApisimpleActivity.this); 
      textView.setLayoutParams(lp); 
      // Center the text vertically 
      textView.setGravity(Gravity.CENTER_VERTICAL | Gravity.LEFT); 
      // Set the text starting position 
      textView.setPadding(36, 0, 0, 0); 
      return textView; 
     } 

     public View getChildView(int groupPosition, int childPosition, boolean isLastChild, 
       View convertView, ViewGroup parent) { 
      TextView textView = getGenericView(); 
      textView.setText(getChild(groupPosition, childPosition).toString()); 
      return textView; 
     } 

     public Object getGroup(int groupPosition) { 
      return groups[groupPosition]; 
     } 

     public int getGroupCount() { 
      return groups.length; 
     } 

     public long getGroupId(int groupPosition) { 
      return groupPosition; 
     } 

     public View getGroupView(int groupPosition, boolean isExpanded, View convertView, 
       ViewGroup parent) { 
      v = null; 
      v=convertView; 
      if(v==null) 
      {LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      v = vi.inflate(R.layout.group, null); 
     /* chk1 =(CheckBox)((View)v).findViewById(R.id.chk); 
      chk1.setOnCheckedChangeListener(new OnCheckedChangeListener() 
      { 

       @Override 
       public void onCheckedChanged(CompoundButton arg0, boolean arg1) { 
        TextView txt = null; 
        if(arg0.isChecked()==true) 
        { 
         txt=(TextView) v.findViewById(R.id.txt); 
        l+=txt.getText().toString(); 
        Toast.makeText(ApisimpleActivity.this,l, Toast.LENGTH_LONG).show(); 
        } 

       } 

      });*/ 
      } 
     return v;} 

     public boolean isChildSelectable(int groupPosition, int childPosition) { 
      return true; 
     } 

     public boolean hasStableIds() { 
      return true; 
     } 

    } 
} 

안녕하세요. 내 모든 어린이에게 나에게 잘 보이지만 문제는 groupview에 있습니다. 확인란을 클릭 한 다음 확장하면 확인란이 선택 취소됩니다. 어느 누구도 목록을 확장하는 데 점검되지 않은 이유와이 문제를 해결하는 방법을 알 수 있습니다. 이 문제를 해결하는 데 도움주세요.ExpandableListView가 확장되면 CheckBoxes가 자동으로 선택 취소됩니다.

답변

0

도움이 될만한 정보가 있습니다. 정적 체크 박스를 선택하고 여러 체크 박스를 사용하는 경우 스토어드 체크 값에 stringbuilder를 사용합니다.

관련 문제