主页代码
public class EditSyllabus extends Activity implements PageListener,
OnClickListener, OnGroupClickListener, OnChildClickListener,Jd{
TextView title;
Button leftbtn;
Button rightbtn;
App app;
protected LayoutInflater LayoutInflater;
ScrollViewGroup scrollViewGroup;// 切换界面
private ExpandableListView mListView1;
private ExpandableListView mListView2;
private ExpandableListView mListView3;
private ExpandableListView mListView4;
private ExpandableListView mListView5;
// private List<String> mArray = new ArrayList<String>();
List<List<ClassM>> mWorkEnList1 = new ArrayList<List<ClassM>>();
List<List<ClassM>> mWorkEnList2 = new ArrayList<List<ClassM>>();
List<List<ClassM>> mWorkEnList3 = new ArrayList<List<ClassM>>();
List<List<ClassM>> mWorkEnList4 = new ArrayList<List<ClassM>>();
List<List<ClassM>> mWorkEnList5 = new ArrayList<List<ClassM>>();
// private // 第三层
// private EditSyllabus_Adapter mAdapter;
// private EditSyllabus_Adapter mAdapter2;
// 统一传入数据
private List<ClassM> mEntities1 = new ArrayList<ClassM>();
private List<ClassM> mEntities2 = new ArrayList<ClassM>();
private List<ClassM> mEntities3 = new ArrayList<ClassM>();
private List<ClassM> mEntities4 = new ArrayList<ClassM>();
private List<ClassM> mEntities5 = new ArrayList<ClassM>();
// 周一到周五的Adapter
private EditSyllabus_Adapter mAdapter1;
private EditSyllabus_Adapter mAdapter2;
private EditSyllabus_Adapter mAdapter3;
private EditSyllabus_Adapter mAdapter4;
private EditSyllabus_Adapter mAdapter5;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.edit_syllabus);
initdata();
setViewGroup();
app = (App) getApplication();//初始化app
updateUI(0, mEntities1, null, mAdapter1, mWorkEnList1, mListView1);
}
public void initdata() {
TextView titletex = (TextView) findViewById(R.id.top_bar_titleTv);
titletex.setText("编辑课程表");
Button topbutton = (Button) findViewById(R.id.top_bar_right_btn);
topbutton.setVisibility(View.VISIBLE);
topbutton.setText("保存");
Button topback = (Button) findViewById(R.id.top_bar_left_btn);
topback.setVisibility(View.GONE);// 隐藏返回按键
Button cancelbtn = (Button) findViewById(R.id.top_bar_left_btn_s);
cancelbtn.setVisibility(View.VISIBLE);// 显示取消按钮
cancelbtn.setText("取消");
title = (TextView) findViewById(R.id.day_title);
leftbtn = (Button) findViewById(R.id.leftbtn);
leftbtn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
rightbtn = (Button) findViewById(R.id.rightbtn);
scrollViewGroup = (ScrollViewGroup) findViewById(R.id.scrollViewGroup_eidt);
scrollViewGroup.setPageListener(EditSyllabus.this);
mListView1 = (ExpandableListView) findViewById(R.id.edit_work_listview);
mListView1.setGroupIndicator(null);
mListView1.setDividerHeight(0);
mListView1.setOnGroupClickListener(this);
mListView1.setOnChildClickListener(this);
}
public void setViewGroup() {
// 周一到周五界面
AbsoluteLayout.LayoutParams lp1 = new AbsoluteLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT, 0, 100);
ExpandableListView mListView2 = new ExpandableListView(this);
mListView2.setDividerHeight(0);//取消横线
//mListView2.setEnabled(false);//取消点击效果
mListView2.setSelector(android.R.color.transparent);
mListView2.setGroupIndicator(null);//取消指示器
//mListView2.setOnGroupClickListener(this);
//mListView2.setOnChildClickListener(this);
ExpandableListView mListView3= new ExpandableListView(this);
mListView3.setSelector(android.R.color.transparent);
mListView3.setDividerHeight(0);
mListView3.setGroupIndicator(null);
//mListView3.setOnGroupClickListener(this);
//mListView3.setOnChildClickListener(this);
ExpandableListView mListView4= new ExpandableListView(this);
mListView4.setSelector(android.R.color.transparent);
mListView4.setDividerHeight(0);
mListView4.setGroupIndicator(null);
//mListView4.setOnGroupClickListener(this);
//mListView4.setOnChildClickListener(this);
ExpandableListView mListView5= new ExpandableListView(this);
mListView5.setSelector(android.R.color.transparent);
mListView5.setDividerHeight(0);
mListView5.setGroupIndicator(null);
//mListView5.setOnGroupClickListener(this);
//mListView5.setOnChildClickListener(this);
scrollViewGroup.addView(mListView2, lp1);
scrollViewGroup.addView(mListView3, lp1);
scrollViewGroup.addView(mListView4, lp1);
scrollViewGroup.addView(mListView5, lp1);
//页面初始化
updateUI(0, mEntities2, null, mAdapter2, mWorkEnList2, mListView2);
updateUI(0, mEntities3, null, mAdapter3, mWorkEnList3, mListView3);
updateUI(0, mEntities4, null, mAdapter4, mWorkEnList4, mListView4);
updateUI(0, mEntities5, null, mAdapter5, mWorkEnList5, mListView5);
}
// 分开数据
private void classifyData(int m, List<ClassM> mEntities,
EditSyllabus_Adapter mAdapter, List<List<ClassM>> mWorkEnList,
ExpandableListView mListView) {
mWorkEnList.clear();
List<ClassM> mForenoon = new ArrayList<ClassM>();// 存上午的数据
List<ClassM> mNooning = new ArrayList<ClassM>();// 存下午的数据
List<ClassM> mEvening = new ArrayList<ClassM>();// 存晚上的数据
for (ClassM entity : mEntities) {
String function = entity.status;
if (function.equals("上午")) {
mForenoon.add(entity);
} else if (function.equals("下午")) {
mNooning.add(entity);
} else if (function.equals("晚上")) {
mEvening.add(entity);
}
}
if (m == 0) {
mWorkEnList.add(mForenoon);
mWorkEnList.add(mNooning);
mWorkEnList.add(mEvening);
List<String> mArray = new ArrayList<String>();
mArray.add("上午");
mArray.add("下午");
mArray.add("晚上");
mAdapter = new EditSyllabus_Adapter(EditSyllabus.this, mArray, mWorkEnList,EditSyllabus.this);
mListView.setAdapter(mAdapter);
for (int i = 0; i < mWorkEnList.size(); i++) {
System.out.println(mWorkEnList.size());
mListView.expandGroup(i);
}
} else if (m != 0 ) {
mWorkEnList.add(mForenoon);
mWorkEnList.add(mNooning);
mWorkEnList.add(mEvening);
}
}
private List<ClassM> initListData(int i, List<ClassM> mEntities, ClassM m) {
if (i == 0 && m == null) {
ClassM cm = initClassEntity("+", "上午");
ClassM cm2 = initClassEntity("+", "下午");
ClassM cm3 = initClassEntity("+", "晚上");
mEntities.add(cm);
mEntities.add(cm2);
mEntities.add(cm3);
} else {
mEntities.add(m);
}
return mEntities;
}
private void updateUI(int i, List<ClassM> mEntities, ClassM m,
EditSyllabus_Adapter mAdapter, List<List<ClassM>> mWorkEnList,
ExpandableListView mListView) {
classifyData(i, initListData(i, mEntities, m), mAdapter, mWorkEnList,
mListView);
}
// 初始化ClassM
private ClassM initClassEntity(String classes, String status) {
ClassM entity = new ClassM();
entity.classes = classes;
entity.status = status;
return entity;
}
@Override
public void page(int page) {
// TODO Auto-generated method stub
}
@Override
public boolean onChildClick(ExpandableListView parent, View v,
int groupPosition, int childPosition, long id) {
//System.out.println(parent+"+"+groupPosition+"+"+childPosition+"+"+id);
//System.out.println("dfasfdsf");
//Toast.makeText(EditSyllabus.this, "dfadsfd", 500).show();
//final Button textbutton = (Button)v.findViewById(R.id.edit_btntext);
//if (parent.equals("mListView")&&childPosition==0&&groupPosition==0) {
//textbutton.setOnClickListener(new OnClickListener() {
//@Override
//public void onClick(View v) {
//// TODO Auto-generated method stub
//if (textbutton.getText().equals("+")) {
//Toast.makeText(EditSyllabus.this, "dfadsfd", 500).show();
//ClassM rm = initClassEntity("fdds", "上午");
//List<ClassM> classMs =initListData(2, mEntities1, rm);
//System.out.println(classMs.size());
//System.out.println(mWorkEnList1.size());
//classifyData(0, classMs, mAdapter1, mWorkEnList1, mListView1);
//System.out.println(mWorkEnList1.size());
//}
//
//}
//});
//
//}
return false;
}
@Override
public boolean onGroupClick(ExpandableListView parent, View v,
int groupPosition, long id) {
Toast.makeText(EditSyllabus.this, "dfadsfd", 500).show();
return true;
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
//主页的callback接受在adapter传出的数据
@Override
public void Callback(int groupPosition, int childPosition, String s) {
System.out.println(app.getClassname()+s);
ClassM rm = initClassEntity(app.getClassname(), s);
List<ClassM> classMs =initListData(2, mEntities1, rm);
System.out.println(classMs.size());
System.out.println(mWorkEnList1.size());
classifyData(0, classMs, mAdapter1, mWorkEnList1, mListView1);
}
}
适配器代码
public class EditSyllabus_Adapter extends BaseExpandableListAdapter {
private Context mContext;
private LayoutInflater mInflater;
private List<List<ClassM>> mList;
private List<String> mArray;
private int cp;private int gp;
private Jd j;
ClassM entity;
public EditSyllabus_Adapter(Context Context, List<String> Array,List<List<ClassM>> List,Jd jd) {
j=jd;
mContext = Context;
mInflater = LayoutInflater.from(Context);
if(List != null) {
mList = List;
} else {
mList = new ArrayList<List<ClassM>>();
}
if(Array != null) {
mArray = Array;
} else {
mArray = new ArrayList<String>();
}
}
@Override
public Object getChild(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return mList.get(groupPosition).get(childPosition);
}
@Override
public long getChildId(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return childPosition;
}
@Override
public int getChildrenCount(int groupPosition) {
// TODO Auto-generated method stub
return mList.get(groupPosition).size();
}
@Override
public Object getGroup(int groupPosition) {
// TODO Auto-generated method stub
return mArray.get(groupPosition);
}
@Override
public int getGroupCount() {
// TODO Auto-generated method stub
return mArray.size();
}
@Override
public long getGroupId(int groupPosition) {
// TODO Auto-generated method stub
return groupPosition;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
ViewHolder holder = null;
if(convertView == null) {
convertView = mInflater.inflate(R.layout.work_group_item_view, null);
holder = new ViewHolder();
holder.mGroupName = (TextView) convertView.findViewById(R.id.work_group_item_tv);
convertView.setTag(holder);
}else {
holder = (ViewHolder) convertView.getTag();
}
holder.mGroupName.setText(mArray.get(groupPosition));
return convertView;
}
@Override
public View getChildView(int groupPosition, int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
gp=groupPosition; cp=childPosition;
ViewHolder holder = null;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.eidt_syllabus_item, null);
holder = new ViewHolder();
//holder.sNumber=(TextView)convertView.findViewById(R.id.edit_number);
holder.mExplain = (Button) convertView.findViewById(R.id.edit_btntext);
//holder.Delbtn = (Button) convertView.findViewById(R.id.edit_btn);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
entity = mList.get(groupPosition).get(childPosition);
holder.mExplain.setText(entity.getClasses());
//System.out.println(entity.getStatus());
holder.mExplain.setOnClickListener(new View.OnClickListener() {// 添加按钮
public void onClick(View v) {
if (cp == 0) {
//开启一个新的界面
Intent intent = new Intent(mContext, Edite_activity.class);
mContext.startActivity(intent);
ec(j, gp,cp,entity.getStatus());//把需要在外面设置的参数传回主页
}
}
});
//
//holder.Delbtn.setOnClickListener(new View.OnClickListener() {
//
//@Override
//public void onClick(View v) {
//if (cp > 0) {// 始终留一项不能删除
//mList.remove(mList.size() - 1);// 删除按钮
//}
//notifyDataSetChanged();
//}
//
//});
return convertView;
}
@Override
public boolean hasStableIds() {
// TODO Auto-generated method stub
return false;
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
// TODO Auto-generated method stub
return true;
}
public class ViewHolder {
/** 序号 **/
TextView sNumber;
/** 描述**/
Button mExplain;
/** 图标**/
Button Delbtn;
/** 组名**/
TextView mGroupName;
}
//拿到j的callback方法
public void ec(Jd j,int groupPosition,int childPosition,String s) {
System.out.println("is start");
j.Callback(groupPosition, childPosition, s);
}
}
回调接口
public interface Jd {
public void Callback(int groupPosition,int childPosition,String s);
}