展会信息港展会大全

ExpandableList chidl的item与item里面的控件冲突解决
来源:互联网   发布日期:2016-01-19 12:33:32   浏览:2514次  

导读:主页代码public class EditSyllabus extends Activity implements PageListener, OnClickListener, OnGroupClickListener, OnChildClickListener,Jd{ TextView title; Button leftbtn; ...

主页代码

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);

}

赞助本站

人工智能实验室

相关热词: ExpandableList chidl item 控件 a

AiLab云推荐
推荐内容
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港