Android的 ListView 擴展實例

fmms 12年前發布 | 28K 次閱讀 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;
        }

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

        public boolean isChildSelectable(int groupPosition, int childPosition) {
            // TODO Auto-generated method stub
            return true;
        }

    }
}
看一下運行在模擬器上的效果:

    

Android的 ListView 擴展實例

Android的 ListView 擴展實例

 本文由用戶 fmms 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!