對於使用ExadableListView的使用
阿新 • • 發佈:2019-01-08
在使用exadablelistview中主要的事對於adapter中幾個方法的認識
- privateclass MyExpandableListViewAdapter extends BaseExpandableListAdapter {
- // 獲得某個父項的某個子項
- @Override
- public Object getChild(int parentPos, int childPos) {
- return dataset.get(parentList[parentPos]).get(childPos);
- }
- // 獲得父項的數量
- @Override
- publicint getGroupCount() {
- return dataset.size();
- }
- // 獲得某個父項的子項數目
- @Override
- publicint getChildrenCount(int parentPos) {
- return dataset.get(parentList[parentPos]).size();
- }
- // 獲得某個父項
- @Override
- public Object getGroup(int parentPos) {
- return
- }
- // 獲得某個父項的id
- @Override
- publiclong getGroupId(int parentPos) {
- return parentPos;
- }
- // 獲得某個父項的某個子項的id
- @Override
- publiclong getChildId(int parentPos, int childPos) {
- return childPos;
- }
- // 按函式的名字來理解應該是是否具有穩定的id,這個方法目前一直都是返回false,沒有去改動過
- @Override
- publicboolean hasStableIds() {
- returnfalse;
- }
- // 獲得父項顯示的view
- @Override
- public View getGroupView(int parentPos, boolean b, View view, ViewGroup viewGroup) {
- return view;
- }
- // 獲得子項顯示的view
- @Override
- public View getChildView(int parentPos, int childPos, boolean b, View view, ViewGroup viewGroup) {
- return view;
- }
- // 子項是否可選中,如果需要設定子項的點選事件,需要返回true
- @Override
- publicboolean isChildSelectable(int i, int i1) {
- returnfalse;
- }
- }
@Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { if(convertView==null){ //建立layoutinflaterserver LayoutInflater layoutInflater= (LayoutInflater) MainActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView=layoutInflater.inflate(R.layout.parent_item,null); } convertView.setTag(R.layout.parent_item, groupPosition); convertView.setTag(R.layout.child_item, -1); TextView text = (TextView) convertView.findViewById(R.id.expanable_text); text.setText(parentList[groupPosition]); return convertView; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { if (convertView == null) { LayoutInflater inflater = (LayoutInflater) MainActivity .this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView = inflater.inflate(R.layout.child_item, null); } convertView.setTag(R.layout.parent_item, groupPosition); convertView.setTag(R.layout.child_item, childPosition); TextView text = (TextView) convertView.findViewById(R.id.child_title); text.setText(dataset.get(parentList[groupPosition]).get(childPosition)); return convertView; }
重點是這兩個方法類似於recycle讓view中的getview的方法
在判斷conview為空後首先做的就是建立Layoutinflatar的一個類的服務聽