擴展的ListView實例 – Android移動開發技術文章_手機開發 Android移動開發教學課程

今天從網上看瞭個擴展的listView的例子,感覺還蠻炫,自己也試著做瞭下。

           由於比較簡單,所有就直接上代碼:

    public class ExtendedListView extends ExpandableListActivity { 
 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        // TODO Auto-generated method stub 
        super.onCreate(savedInstanceState); 
         
        MyExpandableListAdapter adapter=new MyExpandableListAdapter(); 
        setListAdapter(adapter); 
         
    } 
    public class MyExpandableListAdapter extends BaseExpandableListAdapter{ 
        public String[] groups={"我的好友","大學同學","高中同學"}; 
        public String[][] childrens={{"小張","小李","小麗","向明"},{"向明","向明","向明","向明"},{"向明","向明","向明","向明"}}; 
        public Object getChild(int groupPosition, int childPosition) { 
            // TODO Auto-generated method stub 
            return childrens[groupPosition][childPosition]; 
        } 
 
        public long getChildId(int groupPosition, int childPosition) { 
            // TODO Auto-generated method stub 
            return childPosition; 
        } 
 
        public View getChildView(int groupPosition, int childPosition, 
                boolean isLastChild, View convertView, ViewGroup parent) { 
            // TODO Auto-generated method stub 
            TextView textView=getGenericView(); 
            textView.setText(getChild(groupPosition, childPosition).toString()); 
            return textView; 
        } 
        //新建一個TextView 
         public TextView getGenericView() { 
                // Layout parameters for the ExpandableListView 
                AbsListView.LayoutParams lp = new AbsListView.LayoutParams( 
                        ViewGroup.LayoutParams.MATCH_PARENT, 64); 
 
                TextView textView = new TextView(ExtendedListView.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 int getChildrenCount(int groupPosition) { 
            // TODO Auto-generated method stub 
            return childrens[groupPosition].length; 
        } 
 
        public Object getGroup(int groupPosition) { 
            // TODO Auto-generated method stub 
            return groups[groupPosition]; 
        } 
 
        public int getGroupCount() { 
            // TODO Auto-generated method stub 
            return groups.length; 
        } 
 
        public long getGroupId(int groupPosition) { 
            // TODO Auto-generated method stub 
            return groupPosition; 
        } 
 
        public View getGroupView(int groupPosition, boolean isExpanded, 
                View convertView, ViewGroup parent) { 
            // TODO Auto-generated method stub 
            TextView textView = getGenericView(); 
            textView.setText(getGroup(groupPosition).toString()); 
            return textView; 
        } 
 www.aiwalls.com
        public boolean hasStableIds() { 
            // TODO Auto-generated method stub 
            return true; 
        } 
 
        public boolean isChildSelectable(int groupPosition, int childPosition) { 
            // TODO Auto-generated method stub 
            return true; 
        } 
         
    } 

public class ExtendedListView extends ExpandableListActivity {

 @Override
 protected void onCreate(Bundle savedInstanceState) {
  // TODO Auto-generated method stub
  super.onCreate(savedInstanceState);
  
  MyExpandableListAdapter adapter=new MyExpandableListAdapter();
  setListAdapter(adapter);
  
 }
 public class MyExpandableListAdapter extends BaseExpandableListAdapter{
        public String[] groups={"我的好友","大學同學","高中同學"};
        public String[][] childrens={{"小張","小李","小麗","向明"},{"向明","向明","向明","向明"},{"向明","向明","向明","向明"}};
  public Object getChild(int groupPosition, int childPosition) {
   // TODO Auto-generated method stub
   return childrens[groupPosition][childPosition];
  }

  public long getChildId(int groupPosition, int childPosition) {
   // TODO Auto-generated method stub
   return childPosition;
  }

  public View getChildView(int groupPosition, int childPosition,
    boolean isLastChild, View convertView, ViewGroup parent) {
   // TODO Auto-generated method stub
   TextView textView=getGenericView();
      textView.setText(getChild(groupPosition, childPosition).toString());
   return textView;
  }
  //新建一個TextView
   public TextView getGenericView() {
             // Layout parameters for the ExpandableListView
             AbsListView.LayoutParams lp = new AbsListView.LayoutParams(
                     ViewGroup.LayoutParams.MATCH_PARENT, 64);

             TextView textView = new TextView(ExtendedListView.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 int getChildrenCount(int groupPosition) {
   // TODO Auto-generated method stub
   return childrens[groupPosition].length;
  }

  public Object getGroup(int groupPosition) {
   // TODO Auto-generated method stub
   return groups[groupPosition];
  }

  public int getGroupCount() {
   // TODO Auto-generated method stub
   return groups.length;
  }

  public long getGroupId(int groupPosition) {
   // TODO Auto-generated method stub
   return groupPosition;
  }

  public View getGroupView(int groupPosition, boolean isExpanded,
    View convertView, ViewGroup parent) {
   // TODO Auto-generated method stub
   TextView textView = getGenericView();
            textView.setText(getGroup(groupPosition).toString());
   return textView;
  }

  public boolean hasStableIds() {
   // TODO Auto-generated method stub
   return true;
  }

  public boolean isChildSelectable(int groupPosition, int childPosition) {
   // TODO Auto-generated method stub
   return true;
  }
  
 }
}
      看一下運行在模擬器上的效果:

 

摘自 wangkuifeng0118的專欄

發佈留言