正在回答
11回答
这里没有改过来丫,我的意思是红框的都去掉
慕UI6705487
2018-03-13 14:23:22
package com.hala.view01; import java.util.ArrayList; import java.util.List; /** * Created by air on 2018/3/6. */ public class LocalData { /** * 获取列表组的数据 * @return */ public static List<String> getGroupData(){ List<String> groups=new ArrayList<String>(); groups.add("权利的游戏第一季"); groups.add("权利的游戏第二季"); return groups; } /** * 获取子条目的数据 * @return */ public static List<List<String>> getChildData(){ List<List<String>> childs= new ArrayList<List<String>>() { @Override public int size() { return 0; } @Override public List<String> get(int index) { return null; } }; List<String> item1=new ArrayList<String>(); item1.add("龙的诞生"); item1.add("耐得史塔克之死"); childs.add(item1); List<String> item2=new ArrayList<String>(); item1.add("红袍女的出现"); item1.add("少狼主起兵"); item2.add("弑君者被抓"); childs.add(item2); return childs; } }
慕UI6705487
2018-03-12 20:15:30
慕UI6705487
2018-03-12 16:47:36
空指针报错
慕UI6705487
2018-03-12 16:46:19
package com.hala.view01; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import java.util.List; /** 基础适配器 * Created by air on 2018/3/6. */ public abstract class MyBaseAdapter<T> extends BaseExpandableListAdapter { private List<String> groups; private List<List<T>> childs; Context mcontext; LayoutInflater mlayoutInflater; public MyBaseAdapter(Context context){ mcontext=context; mlayoutInflater=LayoutInflater.from(mcontext); } public void addNewData(List<String> groups,List<List<T>> childs){ this.groups=groups; this.childs=childs; } /** * 获取组的数量 * @return */ @Override public int getGroupCount() { return groups.size(); } /** * 获取组的id * @param groupPosition 组的位置 * @return */ @Override public long getGroupId(int groupPosition) { return 0; } /** * 获取组的视图 * @param groupPosition 组的位置 * @param isExpanded 组是否是展开的 * @param convertView 视图 * @param parent 环境 * @return */ @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { return MyGroupView(groupPosition,convertView); } /** * 获取组的具体内容 * @param groupPosition 组的位置 * @return */ @Override public String getGroup(int groupPosition) { return groups.get(groupPosition); } /** * 获取组的子条目数量 * @param groupPosition 组的位置 * @return */ @Override public int getChildrenCount(int groupPosition) { return childs.get(groupPosition).size(); } /** * 获取具体子条目的内容 * @param groupPosition 组的位置 * @param childPosition 子条目在组中的位置 * @return */ @Override public T getChild(int groupPosition, int childPosition) { return childs.get(groupPosition).get(childPosition); } /** * 获取子条目的位置 * @param groupPosition 组的位置 * @param childPosition 子条目在组中的位置 * @return */ @Override public long getChildId(int groupPosition, int childPosition) { return 0; } /** * 获取子条目的视图 * @param groupPosition 组的位置 * @param childPosition 子条目在组中的位置 * @param isLastChild 是否是最后一个子条目 * @param convertView 视图 * @param parent 环境 * @return */ @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { return MyChildView(groupPosition,childPosition,convertView); } public abstract View MyGroupView(int groupPosition,View groupview); public abstract View MyChildView(int groupPosition,int childPosition,View childview); @Override public boolean hasStableIds() { return false; } /** * 子条目是否可以被点击 * @param groupPosition * @param childPosition * @return */ @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } }
MyBaseAdapter类,添加了范型
package com.hala.view01; import android.content.Context; import android.view.View; import android.widget.TextView; /** 本地数据适配器 * Created by air on 2018/3/6. */ public class LocalAdapter extends MyBaseAdapter { public LocalAdapter(Context context) { super(context); } @Override public View MyGroupView(int groupPosition, View groupview) { View view=mlayoutInflater.inflate(R.layout.item_elv_group,null); TextView txttTitle=(TextView) view.findViewById(R.id.txt_group); txttTitle.setText(getGroup(groupPosition)); txttTitle.setPadding(30,0,0,0); //设置内边距,据左边为30dp return view; } @Override public View MyChildView(int groupPosition, int childPosition, View childview) { View view=mlayoutInflater.inflate(R.layout.item_elv_child,null); // TextView txtContent=(TextView)view.findViewById(R.id.txt_child); // txtContent.setText(getChild(groupPosition,childPosition)); // txtContent.setPadding(30,0,0,0); return view; } }
LocalAdapter类,将最后三行注释掉了
慕UI6705487
2018-03-09 19:12:32
/** * 获取具体子条目的内容 * @param groupPosition 组的位置 * @param childPosition 子条目在组中的位置 * @return */ @Override public String getChild(int groupPosition, int childPosition) { return childs.get(groupPosition).get(childPosition); }
MyBaseAdapter类中的问题代码段
报错内容
慕UI6705487
2018-03-08 21:39:50
LocalAdapter类
package com.hala.view01; import android.content.Context; import android.view.View; import android.widget.TextView; /** 本地数据适配器 * Created by air on 2018/3/6. */ public class LocalAdapter extends MyBaseAdapter { public LocalAdapter(Context context) { super(context); } @Override public View MyGroupView(int groupPosition, View groupview) { View view=mlayoutInflater.inflate(R.layout.item_elv_group,null); TextView txttTitle=(TextView) view.findViewById(R.id.txt_group); txttTitle.setText(getGroup(groupPosition)); txttTitle.setPadding(30,0,0,0); //设置内边距,据左边为30dp return view; } @Override public View MyChildView(int groupPosition, int childPosition, View childview) { View view=mlayoutInflater.inflate(R.layout.item_elv_child,null); TextView txtContent=(TextView)view.findViewById(R.id.txt_child); txtContent.setText(getChild(groupPosition,childPosition)); txtContent.setPadding(30,0,0,0); return view; } }
主页面java文件
package com.hala.view01; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.ExpandableListView; import android.widget.Toast; public class Main2Activity extends AppCompatActivity { private ExpandableListView expandableListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); expandableListView=(ExpandableListView)findViewById(R.id.elv); loadLocal(); expandableListView.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() { /** *组的点击事件 * @param parent 即expandableListView * @param v 即Groupview * @param groupPosition 组的位置 * @param id * @return */ @Override public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { Toast.makeText(Main2Activity.this, "你点击的是:"+LocalData.getGroupData().get(groupPosition), Toast.LENGTH_SHORT).show(); return false; } }); expandableListView.setOnChildClickListener(new ExpandableListView.OnChildClickListener() { /** * 子条目的点击事件 * @param parent 即expandableListView * @param v 即Groupview * @param groupPosition 组的位置 * @param childPosition 子条目的位置 * @param id * @return */ @Override public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) { Toast.makeText(Main2Activity.this, "你点击的是:"+LocalData.getChildData().get(childPosition), Toast.LENGTH_SHORT).show(); return false; } }); } //加载本地数据 public void loadLocal(){ LocalAdapter adapter=new LocalAdapter(this); //添加数据 adapter.addNewData(LocalData.getGroupData(),LocalData.getChildData()); expandableListView.setAdapter(adapter); } }
慕UI6705487
2018-03-08 21:38:10
LocalData类
package com.hala.view01; import java.util.AbstractList; import java.util.ArrayList; import java.util.List; /** * Created by air on 2018/3/6. */ public class LocalData { /** * 获取列表组的数据 * @return */ public static List<String> getGroupData(){ List<String> groups=new ArrayList<String>(); groups.add("权利的游戏第一季"); groups.add("权利的游戏第二季"); return groups; } /** * 获取子条目的数据 * @return */ public static List<List<String>> getChildData(){ List<List<String>> childs= new AbstractList<List<String>>() { @Override public int size() { return 0; } @Override public List<String> get(int index) { return null; } }; List<String> item1=new ArrayList<String>(); item1.add("龙的诞生"); item1.add("耐得史塔克之死"); childs.add(item1); List<String> item2=new ArrayList<String>(); item1.add("红袍女的出现"); item1.add("少狼主起兵"); item2.add("弑君者被抓"); childs.add(item2); return childs; } }
MyBaseAdapter类
package com.hala.view01; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import java.util.List; /** 基础适配器 * Created by air on 2018/3/6. */ public abstract class MyBaseAdapter extends BaseExpandableListAdapter { private List<String> groups; private List<List<String>> childs; Context mcontext; LayoutInflater mlayoutInflater; public MyBaseAdapter(Context context){ mcontext=context; mlayoutInflater=LayoutInflater.from(mcontext); } public void addNewData(List<String> groups,List<List<String>> childs){ this.groups=groups; this.childs=childs; } /** * 获取组的数量 * @return */ @Override public int getGroupCount() { return groups.size(); } /** * 获取组的id * @param groupPosition 组的位置 * @return */ @Override public long getGroupId(int groupPosition) { return 0; } /** * 获取组的视图 * @param groupPosition 组的位置 * @param isExpanded 组是否是展开的 * @param convertView 视图 * @param parent 环境 * @return */ @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { return MyGroupView(groupPosition,convertView); } /** * 获取组的具体内容 * @param groupPosition 组的位置 * @return */ @Override public String getGroup(int groupPosition) { return groups.get(groupPosition); } /** * 获取组的子条目数量 * @param groupPosition 组的位置 * @return */ @Override public int getChildrenCount(int groupPosition) { return childs.get(groupPosition).size(); } /** * 获取具体子条目的内容 * @param groupPosition 组的位置 * @param childPosition 子条目在组中的位置 * @return */ @Override public String getChild(int groupPosition, int childPosition) { return childs.get(groupPosition).get(childPosition); } /** * 获取子条目的位置 * @param groupPosition 组的位置 * @param childPosition 子条目在组中的位置 * @return */ @Override public long getChildId(int groupPosition, int childPosition) { return 0; } /** * 获取子条目的视图 * @param groupPosition 组的位置 * @param childPosition 子条目在组中的位置 * @param isLastChild 是否是最后一个子条目 * @param convertView 视图 * @param parent 环境 * @return */ @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { return MyChildView(groupPosition,childPosition,convertView); } public abstract View MyGroupView(int groupPosition,View groupview); public abstract View MyChildView(int groupPosition,int childPosition,View childview); @Override public boolean hasStableIds() { return false; } /** * 子条目是否可以被点击 * @param groupPosition * @param childPosition * @return */ @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } }
Android网络操作与数据存储2018版
- 参与学习 人
- 提交作业 307 份
- 解答问题 1613 个
本专题是联网及数据处理的必备技能。课程从网络基础知识到线程间协同工作、异步下载处理。介绍了Android内外部文件存储、轻量级数据库SQLite的使用。利用屏幕适配、状态保持、百度地图解决实际问题。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星