expandablelistview和checkbox结合使用,复用问题,头疼好几天,大神帮帮忙啊

了viewholder复用了,当子项滑出范围,选中的checkbox变为未选中,不过选中的删除时删除是正确的,只是这样重复选择(不知道怎么说),体验不好,头疼好几天了

expandablelistviewadapter代码如下:
关键代码:

 /*
 * 解决复用问题的关键代码,那里好像出错了。导致自动让滑出屏幕的checkbox不选,这里
 */
if (checkposition!=null) {
itemHolder.cb.setChecked(checkposition.contains(itemHolder.cb.getText().toString())?true:false);
}
else{
itemHolder.cb.setChecked(false);
}
itemHolder.cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
String i = itemHolder.cb.getText().toString();
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

if (isChecked) {
if (!checkposition.contains(i)) {
idlists.add(i);
checkposition.add(i);
}
Fragment1.tv.setText("您已选中"+idlists.size()+"个联系人");
}
else{
if (checkposition.contains(i)) {
idlists.remove(i);
checkposition.remove(i);
}
Fragment1.tv.setText("您已选中"+idlists.size()+"个联系人");
}
}
});

适配器完整代码:

 package com.daisy.work.adapter;

import java.util.ArrayList;
import java.util.List;

import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseExpandableListAdapter;
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;

import com.daisy.work.R;
import com.daisy.work.atys.fragments.Fragment1;
import com.daisy.work.db.ContactDB;

public class MyExpandableListViewAdapter extends BaseExpandableListAdapter {
private Context context;
private Cursor cursor;
private ArrayList<String> group_list;
private ArrayList<List<Integer>> gr_list2;
private ContactDB ctDB;
private SQLiteDatabase dbRead;
private ItemHolder itemHolder;
public ArrayList<String> idlists;
public List<String> checkposition;

public MyExpandableListViewAdapter(Context context, Cursor cursor) {
this.context = context;
this.cursor = cursor;//cursor用来获取填充childview的数据
ctDB = new ContactDB(context);
dbRead = ctDB.getReadableDatabase();
idlists = new ArrayList<String>();//用来记录checkboxbox的值,和数据库的name一列的值相同,便于删除
checkposition = new ArrayList<String>();//用来解决复用滑动错乱问题
group_list = new ArrayList<String>();//填充组
group_list.add("默认");
group_list.add("亲人");
group_list.add("同事");
group_list.add("同学");
group_list.add("客户");

List<Integer> gr_list = new ArrayList<Integer>();
gr_list.add(R.drawable.tree_ec);
gr_list.add(R.drawable.tree_ec);
gr_list.add(R.drawable.tree_ec);
gr_list.add(R.drawable.tree_ec);
gr_list.add(R.drawable.tree_ec);

gr_list2 = new ArrayList<List<Integer>>();//{{1,2,3,4,5},{1,2,3,4,5}...}
gr_list2.add(gr_list);
gr_list2.add(gr_list);
gr_list2.add(gr_list);
gr_list2.add(gr_list);
gr_list2.add(gr_list);


}

@Override
public int getGroupCount() {
return group_list.size();
}

@Override
public int getChildrenCount(int groupPosition) {
String belong = group_list.get(groupPosition);//将特定的数据填充到分组中,用belong标识。
Cursor c = dbRead.query(ContactDB.CONTACT_TABLE_NAME, null,
"belong like ?", new String[] { "%" + belong + "%" }, null,
null, null);
if (!c.moveToFirst()) {
return 0;
} else {
return c.getCount();
}

}

@Override
public Object getGroup(int groupPosition) {
return group_list.get(groupPosition);
}
//多考虑一下
@Override
public Object getChild(int groupPosition, int childPosition) {

return getCombinedChildId(getGroupId(groupPosition),childPosition);//这个没搞太明白,填什么都不会出错

}
@Override
public long getGroupId(int groupPosition) {
return groupPosition;
}
@Override
public long getChildId(int groupPosition, int childPosition) {
return childPosition;
}
@Override
public boolean hasStableIds() {
return true;
}
@Override
public View getGroupView(int groupPosition, boolean isExpanded,
View convertView, ViewGroup parent) {
GroupHolder groupHolder = null;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(
R.layout.expendlist_group, null);
groupHolder = new GroupHolder();
groupHolder.txt = (TextView) convertView.findViewById(R.id.txt);
groupHolder.txt2 = (TextView) convertView.findViewById(R.id.txt2);
groupHolder.img = (ImageView) convertView.findViewById(R.id.img);
convertView.setTag(groupHolder);

} else {
groupHolder = (GroupHolder) convertView.getTag();
}

if (!isExpanded) {
groupHolder.img.setBackgroundResource(R.drawable.tree_ec);
} else {
groupHolder.img.setBackgroundResource(R.drawable.tree_ex);
}

String belong = group_list.get(groupPosition);
cursor = dbRead.query(ContactDB.CONTACT_TABLE_NAME, null,
"belong like ?", new String[] { "%" + belong + "%" }, null,
null, null);
int nm = cursor.getCount();//获取特定组中子项的数目。
groupHolder.txt.setText(group_list.get(groupPosition));
groupHolder.txt2.setText(nm + "");//显示组中子项的数目。
return convertView;
}

@Override
public View getChildView(final int groupPosition,final int childPosition,
boolean isLastChild, View convertView, ViewGroup parent) {
itemHolder = null;
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(
R.layout.expendlist_item,null);
itemHolder = new ItemHolder();
itemHolder.ct_name = (TextView) convertView
.findViewById(R.id.ct_name);
itemHolder.ct_qq = (TextView) convertView.findViewById(R.id.ct_qq);
itemHolder.iv = (ImageView) convertView.findViewById(R.id.iv);
itemHolder.dial = (ImageButton) convertView.findViewById(R.id.dial);
itemHolder.cb = (CheckBox) convertView.findViewById(R.id.cb);
itemHolder.cb.setTag(itemHolder.cb.getText().toString());//child_item布局里的checkbox控件
convertView.setTag(itemHolder);
} else {
itemHolder = (ItemHolder) convertView.getTag();
}
String belong = group_list.get(groupPosition);
cursor = dbRead.query(ContactDB.CONTACT_TABLE_NAME, null,
"belong like ?", new String[] { "%" + belong + "%" }, null,
null, null);
if (!cursor.moveToFirst()) {
return null;
} else {
cursor.moveToPosition(childPosition);
if (Fragment1.xs_bs.isShown()) {//按多选时将checkbox展现出啦,取消则隐藏xs_bs在adapter中无法获取,把它设为了public static
itemHolder.cb.setChecked(false);
itemHolder.cb.setVisibility(CheckBox.GONE);
}
else {
itemHolder.cb.setVisibility(CheckBox.VISIBLE);
itemHolder.dial.setOnClickListener(null);
}
if(Fragment1.qx.isPressed()){    //取消则隐藏
itemHolder.cb.setChecked(false);
}
//显示子项中的数据
itemHolder.ct_name.setText(cursor.getString(cursor
.getColumnIndex("name")));
itemHolder.cb.setText(cursor.getString(cursor
.getColumnIndex("name")));
itemHolder.ct_qq.setText(cursor.getString(cursor
.getColumnIndex("qq")));
itemHolder.iv.setBackgroundResource(R.drawable.ic_ct);
//按钮,由于其特殊性(在expandablelistview子项中的控件,在adapter中设置监听)
itemHolder.dial.setOnClickListener(new View.OnClickListener() {
String phone = cursor.getString(cursor.getColumnIndex("phone"));
@Override
public void onClick(View v) {
context.startActivity(new Intent(Intent.ACTION_DIAL, Uri
.parse("tel:" +phone)));
}
});
/*
 * 解决复用问题的关键代码,那里好像出错了。导致自动让滑出屏幕的checkbox不选,这里
 */
if (checkposition!=null) {
itemHolder.cb.setChecked(checkposition.contains(itemHolder.cb.getText().toString())?true:false);
}
else{
itemHolder.cb.setChecked(false);
}
itemHolder.cb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
String i = itemHolder.cb.getText().toString();
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

if (isChecked) {
if (!checkposition.contains(i)) {
idlists.add(i);
checkposition.add(i);
}
Fragment1.tv.setText("您已选中"+idlists.size()+"个联系人");
}
else{
if (checkposition.contains(i)) {
idlists.remove(i);
checkposition.remove(i);
}
Fragment1.tv.setText("您已选中"+idlists.size()+"个联系人");
}
}
});
return convertView;
}
}
@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
return true;
}


class GroupHolder {
public TextView txt;
public TextView txt2;

public ImageView img;
}

class ItemHolder {
public ImageView iv;

public TextView ct_name;
public TextView ct_qq;
public ImageButton dial;
public CheckBox cb;

}
}

图片说明

3个回答

自己多写几句,把listview的数据源定义为一个类,里面除了你要的信息外,在增加一个字段,checked,表示当前item是否处于选中状态,每次勾选时,设置checked=true,然后当你滑动时,只需要在getview中根据checked属性来设置checkbox的状态即可

qq_29500013
qq_29500013 把数据库的数据变为bean吗?
大约 4 年之前 回复

谢谢啦,做完了我把代码贴出来

能不能把解决的代码给我下
我也出现一样的问题

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ExpandableListView结合checkBox如何解决复用引起的问题

当点击了第0个position的时候 第二组的第0个也被勾选了

android ExpandableListView+CheckBox实现组选列表

需要用ExpandableListView+CheckBox实现一个组选列表,ExpandableListView组列表为部门,子列表为成员。需要选中部门的CheckBox时,选中所有组内成员CheckBox,取消时全部取消。选择单个组内成员时,未全部选中该部门成员,则部门CheckBox不勾选,如选中了所有成员,则自动勾选部门CheckBox。希望以前做过的朋友可以给个详细的例子 下面附上我的代码 ``` import android.content.Context; import android.view.View; import android.view.ViewGroup; import android.widget.BaseExpandableListAdapter; import android.widget.CheckBox; import android.widget.CompoundButton; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.TextView; import java.util.ArrayList; import java.util.List; import java.util.Map; public class ReportListAdapter extends BaseExpandableListAdapter { private Context context; private List<DepartmentEntity> parentList; private Map<String, List<EmployeeEntity>> map; private List<Boolean> parentStatusList = new ArrayList<Boolean>(); private List<Boolean> childStatusList = new ArrayList<Boolean>(); public ReportListAdapter(Context context, List<DepartmentEntity> parentList, Map<String, List<EmployeeEntity>> map) { this.context = context; this.parentList = parentList; this.map = map; } // 得到子item需要关联的数据 @Override public Object getChild(int groupPosition, int childPosition) { String key = parentList.get(groupPosition).getId(); return (map.get(key).get(childPosition)); } // 得到子item的ID @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } // 设置子item的组件 @Override public View getChildView(final int groupPosition, final int childPosition, final boolean isLastChild, View convertView, final ViewGroup parent) { if (convertView == null) { convertView = View.inflate(context, R.layout.report_list_child_item, null); } String key = this.parentList.get(groupPosition).getId(); final EmployeeEntity employee = map.get(key).get(childPosition); String name = employee.getName(); TextView employeeName = BaseViewHolder.get(convertView, R.id.employee_name); employeeName.setText(name); CheckBox childCB = BaseViewHolder.get(convertView, R.id.employee_checkbox); // if (employee.isChecked()) { // cb.setChecked(true); // } else { // cb.setChecked(false); // } childCB.setChecked(employee.isChecked()); // notifyDataSetChanged(); childCB.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { CheckBox nowCB = (CheckBox) view; if (nowCB.isChecked()) { employee.setIsChecked(true); // // //获得子item数量 int childSize = getChildrenCount(groupPosition); //其他子item状态 List<Boolean> otherChildStatus = new ArrayList<Boolean>(); otherChildStatus.clear(); for (int i = 0; i < childSize; i++) { if (i != childPosition) { boolean isLastChild1; if (i == childSize - 1) { isLastChild1 = true; } else { isLastChild1 = false; } //获得子item View view1 = getChildView(groupPosition, i, isLastChild1, null, null); CheckBox childCB = (CheckBox) view1.findViewById(R.id.employee_checkbox); boolean cbStatus; if (childCB.isChecked()) { cbStatus = true; } else { cbStatus = false; } otherChildStatus.add(cbStatus); } } //获得父item View parentView1 = getGroupView(groupPosition, true, null, null); //获取父item的cb CheckBox parentCB = (CheckBox) parentView1.findViewById(R.id.department_checkbox); //设置父Item选项框状态 for (int i = 0; i < otherChildStatus.size(); i++) { if (!otherChildStatus.get(i)) { parentList.get(groupPosition).setIsChecked(false); parentCB.setChecked(false); System.out.println("设置父cb不选"); break; } else { parentList.get(groupPosition).setIsChecked(true); parentCB.setChecked(true); notifyDataSetChanged(); System.out.println("设置父cb全选中"); } } notifyDataSetChanged(); } else { //获得父item View parentView = getGroupView(groupPosition, true, null, null); employee.setIsChecked(false); CheckBox parentCB = (CheckBox) parentView.findViewById(R.id.department_checkbox); parentList.get(groupPosition).setIsChecked(false); parentCB.setChecked(false); System.out.println("设置父cb不选"); notifyDataSetChanged(); } } }); // cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { // @Override // public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { // //获得父item // View parentView = getGroupView(groupPosition, true, null, null); // if (isChecked) { // employee.setIsChecked(true); // // //获得子item数量 // int childSize = getChildrenCount(groupPosition); // //其他子item状态 // List<Boolean> otherChildStatus = new ArrayList<Boolean>(); // for (int i = 0; i < childSize; i++) { // if (i != childPosition) { // boolean isLastChild1; // if (i == childSize - 1) { // isLastChild1 = true; // } else { // isLastChild1 = false; // } // //获得子item // View view = getChildView(groupPosition, i, isLastChild1, null, null); // CheckBox childCB = (CheckBox) view.findViewById(R.id.employee_checkbox); // boolean cbStatus; // if (childCB.isChecked()) { // cbStatus = true; // } else { // cbStatus = false; // } // otherChildStatus.add(cbStatus); // } // } // //设置父Item选项框状态 // for (int i = 0; i < otherChildStatus.size(); i++) { // CheckBox parentCB = (CheckBox) parentView.findViewById(R.id.department_checkbox); // if (otherChildStatus.get(i) == false) { // parentCB.setChecked(false); // parentList.get(groupPosition).setIsChecked(false); // break; // } else { // parentCB.setChecked(true); // parentList.get(groupPosition).setIsChecked(true); // } // } // notifyDataSetChanged(); // } else { // employee.setIsChecked(false); // CheckBox parentCB = (CheckBox) parentView.findViewById(R.id.department_checkbox); // parentCB.setChecked(false); // parentList.get(groupPosition).setIsChecked(false); // notifyDataSetChanged(); // } // // } // }); return convertView; } // 获取当前父item下的子item的个数 @Override public int getChildrenCount(int groupPosition) { String key = parentList.get(groupPosition).getId(); int size = map.get(key).size(); return size; } // 获取当前父item的数据 @Override public Object getGroup(int groupPosition) { return parentList.get(groupPosition); } @Override public int getGroupCount() { return parentList.size(); } @Override public long getGroupId(int groupPosition) { return groupPosition; } // 设置父item组件 @Override public View getGroupView(final int groupPosition, final boolean isExpanded, View convertView, ViewGroup parent) { if (convertView == null) { convertView = View.inflate(context, R.layout.report_list_parent_item, null); } ImageView mgroupimage = BaseViewHolder.get(convertView, R.id.arrow); mgroupimage.setImageResource(R.mipmap.la); if (!isExpanded) { mgroupimage.setImageResource(R.mipmap.shou); } TextView departmentName = BaseViewHolder.get(convertView, R.id.department_name); departmentName.setText(parentList.get(groupPosition).getName()); final CheckBox cb = BaseViewHolder.get(convertView, R.id.department_checkbox); cb.setOnClickListener( new View.OnClickListener() { @Override public void onClick(View view) { System.out.println("点击了父" + groupPosition); CheckBox nowCB = (CheckBox) view; if (nowCB.isChecked()) { //获取子item的数量 int childSize = getChildrenCount(groupPosition); //子item全选中 for (int i = 0; i < childSize; i++) { //获取子item EmployeeEntity child = (EmployeeEntity) getChild(groupPosition, i); child.setIsChecked(true); boolean isLastChild; if (i == childSize - 1) { isLastChild = true; } else { isLastChild = false; } //获得子item View view1 = getChildView(groupPosition, i, isLastChild, null, null); CheckBox childCB = (CheckBox) view1.findViewById(R.id.employee_checkbox); childCB.setChecked(true); System.out.println("子" + groupPosition + "-" + i + " 已经选中"); } //设置父item被完全选中 parentList.get(groupPosition).setIsChecked(true); cb.setChecked(true); System.out.println("父" + groupPosition + " 已经选中"); notifyDataSetChanged(); } else { //获取子item的数量 int childSize = getChildrenCount(groupPosition); //子Item全都不选中 for (int i = 0; i < childSize; i++) { //获取子item数据 EmployeeEntity child = (EmployeeEntity) getChild(groupPosition, i); child.setIsChecked(false); boolean isLastChild; if (i == childSize - 1) { isLastChild = true; } else { isLastChild = false; } //获得子item View view2 = getChildView(groupPosition, i, isLastChild, null, null); CheckBox childCB = (CheckBox) view2.findViewById(R.id.employee_checkbox); childCB.setChecked(false); System.out.println("子" + groupPosition + "-" + i + " 已经设为没选中"); } parentList.get(groupPosition).setIsChecked(false); notifyDataSetChanged(); } } } ); int childSize = getChildrenCount(groupPosition); List<Boolean> nowChildStatus = new ArrayList<Boolean>(); nowChildStatus.clear(); // cb.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { // @Override // public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) { // System.out.println("点击了父" + groupPosition); // if (isChecked) { // //获取子item的数量 // int childSize = getChildrenCount(groupPosition); // //子item全选中 // for (int i = 0; i < childSize; i++) { // //获取子item // EmployeeEntity child = (EmployeeEntity) getChild(groupPosition, i); // child.setIsChecked(true); // boolean isLastChild; // if (i == childSize - 1) { // isLastChild = true; // } else { // isLastChild = false; // } // //获得子item // View view = getChildView(groupPosition, i, isLastChild, null, null); // CheckBox childCB = (CheckBox) view.findViewById(R.id.employee_checkbox); // childCB.setChecked(true); // System.out.println("子" + groupPosition + "-" + i + " 已经选中"); // } // //设置父item被完全选中 // parentList.get(groupPosition).setIsChecked(true); // cb.setChecked(true); // System.out.println("父" + groupPosition + " 已经选中"); // // notifyDataSetChanged(); // } else { // //获取子item的数量 // int childSize = getChildrenCount(groupPosition); // //子Item全都不选中 // for (int i = 0; i < childSize; i++) { // //获取子item数据 // EmployeeEntity child = (EmployeeEntity) getChild(groupPosition, i); // child.setIsChecked(false); // boolean isLastChild; // if (i == childSize - 1) { // isLastChild = true; // } else { // isLastChild = false; // } // //获得子item // View view = getChildView(groupPosition, i, isLastChild, null, null); // CheckBox childCB = (CheckBox) view.findViewById(R.id.employee_checkbox); // childCB.setChecked(false); // System.out.println("子" + groupPosition + "-" + i + " 已经设为没选中"); // } // parentList.get(groupPosition).setIsChecked(false); // // notifyDataSetChanged(); // } // // } // }); // if (parentList.get(groupPosition).getIsChecked() == 2) { // cb.setChecked(true); // } else { // cb.setChecked(false); // } return convertView; } @Override public boolean hasStableIds() { return true; } //子集是否可选 @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } } ```

关于expandablelistview子项布局复用调用了父项复用的问题

我在getgroupview里面设置的是复用,子项也是需要复用的,但是子项的复用一直会调 用父项里面的,但是我tag设置的明明就是子项的holder,以下是代码,希望大神帮忙一下,急 @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { int Type = getGroupType(groupPosition); switch (Type){ case GROUP_TYPE_ONE: if (convertView == null){ convertView = LayoutInflater.from(mContext).inflate(R.layout.list_category_item,null); } TextView textView = (TextView) convertView.findViewById(R.id.list_category_name); textView.setText((Integer) getGroup(groupPosition)); textView.setTextSize(20); break; case GROUP_TYPE_TWO: GroupHolder groupHolder; if (convertView == null){ groupHolder = new GroupHolder(); convertView = LayoutInflater.from(mContext).inflate(R.layout.expand_group_layout,null); groupHolder.mGroupImg = (ImageView) convertView.findViewById(R.id.FAQ_list_item_image); groupHolder.mGroupNomalImg = (ImageView) convertView.findViewById(R.id.FAQ_list_cancle_image); groupHolder.mGroupText = (TextView) convertView.findViewById(R.id.FAQ_list_item_text); groupHolder.mGroupRela = (RelativeLayout) convertView.findViewById(R.id.FAQ_list_item_image_main); convertView.setTag(groupHolder); }else{ groupHolder = (GroupHolder) convertView.getTag(); Log.e(TAG,convertView.getTag().toString()+"groupview"); } ItemValue itemValue = (ItemValue) getGroup(groupPosition); groupHolder.mGroupText.setText(itemValue.getmMainContent()); groupHolder.mGroupImg.setImageResource(R.mipmap.faq_icon); if (isExpanded){ groupHolder.mGroupNomalImg.setImageResource(R.mipmap.status_enter_p); }else { groupHolder.mGroupNomalImg.setImageResource(R.mipmap.status_enter); } LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(CCIApplication.getScreenHeight(20),CCIApplication.getScreenHeight(20)); groupHolder.mGroupRela.setLayoutParams(params); groupHolder.mGroupNomalImg.setLayoutParams(params); break; } return convertView; } @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { //View view = convertView; ChildHolder childHolder ; if (convertView == null){ childHolder = new ChildHolder(); convertView = LayoutInflater.from(parent.getContext()).inflate(R.layout.child_text_layout,null); childHolder.mChildText = (TextView) convertView.findViewById(R.id.child_text); convertView.setTag(childHolder); }else{ Log.e(TAG,convertView.getTag()+"childview"); childHolder = (ChildHolder) convertView.getTag(); } ItemValue itemValue = (ItemValue) getChild(groupPosition,childPosition); childHolder.mChildText.setText(itemValue.getmMainContent()); return convertView; } 当执行childHolder = (ChildHolder) convertView.getTag();这一句时,返回的是grouphlder 报错log如下: 01-12 10:14:10.025 31271-31271/cci.com.soundmax.hk E/Expandable: cci.com.soundmax.hk.setting.adapter.MyExpandableAdapter$GroupHolder@b797a7egroupview 01-12 10:14:10.035 31271-31271/cci.com.soundmax.hk E/Expandable: cci.com.soundmax.hk.setting.adapter.MyExpandableAdapter$GroupHolder@9624af5childview 01-12 10:14:10.045 31271-31271/cci.com.soundmax.hk E/AndroidRuntime: FATAL EXCEPTION: main Process: cci.com.soundmax.hk, PID: 31271 java.lang.ClassCastException: cci.com.soundmax.hk.setting.adapter.MyExpandableAdapter$GroupHolder cannot be cast to cci.com.soundmax.hk.setting.adapter.MyExpandableAdapter$ChildHolder at cci.com.soundmax.hk.setting.adapter.MyExpandableAdapter.getChildView(MyExpandableAdapter.java:244)

Android ExpandableListView点击列表项改变列表项内组件产生混乱的问题

//ExpandableListView的适配器 @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { // TODO Auto-generated method stub GroupViewHolder gvholder; if (convertView == null) { gvholder = new GroupViewHolder(); convertView = LinearLayout.inflate(getBaseContext(), R.layout.group_layout, null); gvholder.groupcity = (TextView) convertView .findViewById(R.id.group_title); gvholder.groupsize = (TextView) convertView .findViewById(R.id.groupcap); gvholder.groupload = (ImageView) convertView .findViewById(R.id.group_state); convertView.setTag(gvholder); } else { gvholder = (GroupViewHolder) convertView.getTag(); } // ExpandableListView 的OnGroupClick监听 allcitylists.setOnGroupClickListener(new OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { // TODO Auto-generated method stub group_checked[groupPosition] = group_checked[groupPosition] + 1; ((BaseExpandableListAdapter) expadapter).notifyDataSetChanged(); if (groupPosition < 5 || groupPosition >= provincelist.size() - 3) { ArrayList<MKOLSearchRecord> records = mOffline .searchCity(provincelist.get(groupPosition).get(0)); if (records != null && records.size() == 1) { cityid = records.get(0).cityID; mOffline.start(cityid); updateView(); //改变的组件 TextView loadtext = (TextView) v .findViewById(R.id.group_loadtitle); loadtext.setVisibility(View.VISIBLE); changeloadtext(loadtext, cityid); } } return false; } }); 内容比较多,没贴完,但关键的地方都在上面,点击列表项能够把loadtext显示出来,但是上下滑动之后,显示的就不是我刚刚点击的那个列表项的TextView,而是其他列表项的Textview,应该是不能在这里用ViewHolder,但是我也想不出来怎么改变,请各位大神指教指教

求教大神ExpandableListView自动收回的问题

大神们好,我使用ExpandableListView时出现一个问题,就是在刚显示出ExpandableListView的时候,点击条目展示扩展条目只显示一瞬间后自动收回,过了一会或者第二次进入时又能正常展示,各位大神指教一下,谢谢。

ScrollView,Viewpage,fragment,ExpandableList结合使用问题

底部一个导航栏有四个栏目,分别加载四个fragment,其中一个gragment布局包括一个ScrollView,ScrollView包括很多东西,最重要的是包括一个Viewpage,因为上面的控件太多,此时viewpage已经处于屏幕底部了,Viewpage,里面有3个fragment 可以滑动加载,,现在的问题是如果给viewpage设置固定高度则fragment里面的Expandablelistview不能滑动了,如果自适应则只在很窄的空间显示,我想要的效果是viewpage会自动的调整高度,根据fragment里面的Expandablelistview的高度来自适应。而且如果滑动到第三个fragment之后再滑回第一fragment时,第一个fragment里面的数据多了一倍![![图

ExpandableListView里面child的高度自适应

我使用ExpandableListView过程中遇到一个问题,就是child里面的布局是相对布局,高度是 自适应的,但是发现布局里面一些view设了match parent是起不了作用,运行后显示丢失了,只有指定具体的dp值才显示出来,同时,我想实现每个child是根据内容自动去适应高度的,就是每个child的高度可能不一的,要怎么才做到

android sqlite expandablelistview

我想做一个expandablelistview,有a表,是部门表,主键是部门id,然后还有b表,是员工表,有键pid,对应表a的部门id,怎么把他们放到expandablelistview里,然后父布局是放部门的,子部门是放员工的?如何查询?

怎么调整ExpandableListView item的间距

程序里出用到了树型组件,经过运行感觉组件各个item的间距太小,想要把间距条大一点,想问一下该怎么调整? 我的树形组件是这样配置的: <ExpandableListView android:id="@+id/el_service_choice_listview" android:layout_width="fill_parent" android:layout_weight="1" android:cacheColorHint="#00000000" android:divider="@drawable/seperator" android:fadingEdge="none" /> 组件内容布局代码是这样写的: private TextView buildTextView() { AbsListView.LayoutParams params = new AbsListView.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); TextView textView = new TextView(this.context) ; textView.setLayoutParams(params) ; textView.setTextSize(18.0f) ; textView.setTextColor(R.color.black); textView.setGravity(Gravity.LEFT) ; textView.setPadding(40, 5, 3, 5) ; return textView ; } 请问我该怎么改,才能扩大间距呢?(最好能够在xml文件里实现) 还有我在配置文件里加上下面的属性,会报错,请问是什么原因? android:dividerHeight="10dp"

关于ExpandableListView中的Adapter问题

我在ExpandableListview的二级菜单里面加了EditTest文本框,但是在调试时就出现了很奇怪的问题:但我点击子标签的文本框时键盘弹出来但是获取不了焦点,要再点一次文本框才能输入内容,而输入完后键盘一收起来刚输入的文本就没了,请问这个该怎么解决? ``` private class MyExpendAdapter extends BaseExpandableListAdapter{ /** * pic state */ int []group_state=new int[]{R.drawable.group_right,R.drawable.group_down};//向左、向下小图标 /** * group title */ String []group_title=new String[]{"基本信息","商品详情","活动"}; /** * child text */ String [][] child_text=new String [][]{ {"商品名称","商品价格","商品标签","商品特色","品牌"}, {"商品颜色","重量","材料","尺码","产地"}, {"张三","仇斌","温志豪","黎伦"}}; /** * 获取一级标签中二级标签的内容 */ @Override public Object getChild(int groupPosition, int childPosition) { return child_text[groupPosition][childPosition]; } /** * 获取二级标签ID */ @Override public long getChildId(int groupPosition, int childPosition) { return childPosition; } /** * 对一级标签下的二级标签进行设置 */ @SuppressLint("SimpleDateFormat") @Override public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { convertView=getLayoutInflater().inflate(R.layout.child, null); TextView tv=(TextView) convertView.findViewById(R.id.tv); //TextView time=(TextView) convertView.findViewById(R.id.time); EditText ed1 =(EditText)convertView.findViewById(R.id.edit_1); tv.setText(child_text[groupPosition][childPosition]); ed1.setText(child_text[groupPosition][childPosition]); //获取系统事件 // long times=System.currentTimeMillis(); //SimpleDateFormat format=new SimpleDateFormat("yyyy年mm月dd日hh时mm分ss秒"); //String date=format.format(times); //time.setText(date); ed1.setText(ed1.getText()); return convertView; } /** * 一级标签下二级标签的数量 */ @Override public int getChildrenCount(int groupPosition) { return child_text[groupPosition].length; } /** * 获取一级标签内容 */ @Override public Object getGroup(int groupPosition) { return group_title[groupPosition]; } /** * 一级标签总数 */ @Override public int getGroupCount() { return group_title.length; } /** * 一级标签ID */ @Override public long getGroupId(int groupPosition) { return groupPosition; } /** * 对一级标签进行设置 */ @Override public View getGroupView(int groupPosition, boolean isExpanded, View convertView, ViewGroup parent) { convertView=getLayoutInflater().inflate(R.layout.group, null); ImageView iv=(ImageView) convertView.findViewById(R.id.iv); TextView tv=(TextView) convertView.findViewById(R.id.iv_title); iv.setImageResource(R.drawable.group_right); tv.setText(group_title[groupPosition]); if(group_click[groupPosition]%2==0){ iv.setImageResource(R.drawable.group_right); }else{ iv.setImageResource(R.drawable.group_down); } return convertView; } /** * 指定位置相应的组视图 */ @Override public boolean hasStableIds() { return true; } /** * 当选择子节点的时候,调用该方法 */ @Override public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } } ```

ExpandableListView如和保存数据

如何把服务端请求到的**json字符串**保存到ExpandableListView中 ,类似QQ好友列表那种 效果 **求大神 解答解答**

expandableListView 二级列表设置不同样式的布局?

expandableListView 二级列表设置不同样式的布局? 最好附源码

Android 修改Expandablelistview二级列表项中的EditText的内容

如何通过一级列表项中的按钮保存对应所有二级列表项修改后的内容。或者有没有其他办法,比如判断EditText的焦点,当失去焦点时保存新内容,反正,就是不能在每个二级列表项后面都加个保存按钮

ExpandableListView中添加按钮

在ExpandableListView的group和child中添加按钮并设置监听,求源码,感激!

ExpandableListview的子item中的一个linearlayout动态添加图片错乱

我使用了ExpandableListview,他的子item中有一个linearlayout我需要遍历一个数组然后动态添加图片,在adapter中用了viewholder,现在就是后加载的item中会把之前的图片也添加进去,我初步断定是因为复用的问题 查了一下,网上好多都说设置tag,我想问一下各位如果我给这个layout设置tag的话,后边怎么进行处理 还有就是能不能做到这块不复用,还是说只要在这个view里就注定了其他地方复用的话就都要复用 或者各位有什么好的解决方案麻烦帮忙提下

通过输入关键字来搜索ExpandableListView中数据

我想用一个搜索框EditView或者SearchView,通过输入关键字来搜索ExpandableListView中二级菜单中的数据(ExpandableListView总共就两级数据),用listView会用,但是ExpandableListView试了好久,找了好多方法,都不会用。求大神指教

Expandablelistview利用父项中的按钮添加子项

要求: 采用二级列表——expandablelistview 二级列表中父项有删除按钮——在重写baseadapter中的getgroupview添加按钮监听 二级列表中每个父项有添加子项的按钮——??? (点击后,下方所属的子项添加一个格式一致的项,内容可以根据弹出框设置,框我会) 请教各位大佬!困扰我好几天了。

expandablelistview中自定义的child无法点击

写了一个自定义的expandablelistview group设置监听事件,能被点击 child setOnChildClickListener()无反应 什么原因??? 下面是适配器中getchildView()的函数 试了一下 把return换成title(title是自定义布局中的一个textview) 可以进行点击 怎么回事???? ``` public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) { View view = convertView; if (view == null) { //LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); LayoutInflater inflater = LayoutInflater.from(getActivity()); view = inflater.inflate(R.layout.childitem, null); } final TextView title = (TextView) view .findViewById(R.id.child_text); title.setText(childData.get(groupPosition).get(childPosition) .get("child_text1").toString()); final TextView title2 = (TextView) view .findViewById(R.id.child_text2); title2.setText(childData.get(groupPosition).get(childPosition) .get("child_text2").toString()); final TextView title3 = (TextView) view .findViewById(R.id.child_text3); title3.setText(childData.get(groupPosition).get(childPosition) .get("child_text3").toString()); return view; } ``` isChildSelectable()函数已设为true ``` public boolean isChildSelectable(int groupPosition, int childPosition) { return true; } ```

怎么将ExpandableListView左边的倒三角放置到右边右边

怎么将ExpandableListView左边的倒三角放置到右边 <ExpandableListView android:id="@+id/el_option" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/beijingnihao"> </ExpandableListView> 上面是布局文件,下面是group的布局文件 <ImageView android:id="@+id/imageView_group" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/pengxin" /> <TextView android:id="@+id/textView_group" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Large Text" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout>

学Python后到底能干什么?网友:我太难了

感觉全世界营销文都在推Python,但是找不到工作的话,又有哪个机构会站出来给我推荐工作? 笔者冷静分析多方数据,想跟大家说:关于超越老牌霸主Java,过去几年间Python一直都被寄予厚望。但是事实是虽然上升趋势,但是国内环境下,一时间是无法马上就超越Java的,也可以换句话说:超越Java只是时间问题罢。 太嚣张了会Python的人!找工作拿高薪这么简单? https://edu....

在中国程序员是青春饭吗?

今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...

为什么程序猿都不愿意去外包?

分享外包的组织架构,盈利模式,亲身经历,以及根据一些外包朋友的反馈,写了这篇文章 ,希望对正在找工作的老铁有所帮助

Java校招入职华为,半年后我跑路了

何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...

Java基础知识面试题(2020最新版)

文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的主类有何不同?Java应用程序与小程序之间有那些差别?Java和C++的区别Oracle JDK 和 OpenJDK 的对比基础语法数据类型Java有哪些数据类型switc...

@程序员:GitHub这个项目快薅羊毛

今天下午在朋友圈看到很多人都在发github的羊毛,一时没明白是怎么回事。 后来上百度搜索了一下,原来真有这回事,毕竟资源主义的羊毛不少啊,1000刀刷爆了朋友圈!不知道你们的朋友圈有没有看到类似的消息。 这到底是啥情况? 微软开发者平台GitHub 的一个区块链项目 Handshake ,搞了一个招募新会员的活动,面向GitHub 上前 25万名开发者派送 4,246.99 HNS币,大约价...

用python打开电脑摄像头,并把图像传回qq邮箱【Pyinstaller打包】

前言: 如何悄悄的打开朋友的摄像头,看看她最近过的怎么样,嘿嘿!这次让我带你们来实现这个功能。 注: 这个程序仅限在朋友之间开玩笑,别去搞什么违法的事情哦。 代码 发送邮件 使用python内置的email模块即可完成。导入相应的代码封装为一个send函数,顺便导入需要导入的包 注: 下面的代码有三处要修改的地方,两处写的qq邮箱地址,还有一处写的qq邮箱授权码,不知道qq邮箱授权码的可以去百度一...

做了5年运维,靠着这份监控知识体系,我从3K变成了40K

从来没讲过运维,因为我觉得运维这种东西不需要太多的知识面,然后我一个做了运维朋友告诉我大错特错,他就是从3K的运维一步步到40K的,甚至笑着说:我现在感觉自己什么都能做。 既然讲,就讲最重要的吧。 监控是整个运维乃至整个产品生命周期中最重要的一环,事前及时预警发现故障,事后提供详实的数据用于追查定位问题。目前业界有很多不错的开源产品可供选择。选择一款开源的监控系统,是一个省时省力、效率最高的方...

C++(继承):19---虚基类与虚继承(virtual)

一、菱形继承 在介绍虚继承之前介绍一下菱形继承 概念:A作为基类,B和C都继承与A。最后一个类D又继承于B和C,这样形式的继承称为菱形继承 菱形继承的缺点: 数据冗余:在D中会保存两份A的内容 访问不明确(二义性):因为D不知道是以B为中介去访问A还是以C为中介去访问A,因此在访问某些成员的时候会发生二义性 缺点的解决: 数据冗余:通过下面“虚继承”技术来解决(见下) 访问...

再不跳槽,应届毕业生拿的都比我多了!

跳槽几乎是每个人职业生涯的一部分,很多HR说“三年两跳”已经是一个跳槽频繁与否的阈值了,可为什么市面上有很多程序员不到一年就跳槽呢?他们不担心影响履历吗? PayScale之前发布的**《员工最短任期公司排行榜》中,两家码农大厂Amazon和Google**,以1年和1.1年的员工任期中位数分列第二、第四名。 PayScale:员工最短任期公司排行榜 意外的是,任期中位数极小的这两家公司,薪资...

我以为我学懂了数据结构,直到看了这个导图才发现,我错了

数据结构与算法思维导图

技术大佬:我去,你写的 switch 语句也太老土了吧

昨天早上通过远程的方式 review 了两名新来同事的代码,大部分代码都写得很漂亮,严谨的同时注释也很到位,这令我非常满意。但当我看到他们当中有一个人写的 switch 语句时,还是忍不住破口大骂:“我擦,小王,你丫写的 switch 语句也太老土了吧!” 来看看小王写的代码吧,看完不要骂我装逼啊。 private static String createPlayer(PlayerTypes p...

华为初面+综合面试(Java技术面)附上面试题

华为面试整体流程大致分为笔试,性格测试,面试,综合面试,回学校等结果。笔试来说,华为的难度较中等,选择题难度和网易腾讯差不多。最后的代码题,相比下来就简单很多,一共3道题目,前2题很容易就AC,题目已经记不太清楚,不过难度确实不大。最后一题最后提交的代码过了75%的样例,一直没有发现剩下的25%可能存在什么坑。 笔试部分太久远,我就不怎么回忆了。直接将面试。 面试 如果说腾讯的面试是挥金如土...

和黑客斗争的 6 天!

互联网公司工作,很难避免不和黑客们打交道,我呆过的两家互联网公司,几乎每月每天每分钟都有黑客在公司网站上扫描。有的是寻找 Sql 注入的缺口,有的是寻找线上服务器可能存在的漏洞,大部分都...

讲一个程序员如何副业月赚三万的真实故事

loonggg读完需要3分钟速读仅需 1 分钟大家好,我是你们的校长。我之前讲过,这年头,只要肯动脑,肯行动,程序员凭借自己的技术,赚钱的方式还是有很多种的。仅仅靠在公司出卖自己的劳动时...

win10暴力查看wifi密码

刚才邻居打了个电话说:喂小灰,你家wifi的密码是多少,我怎么连不上了。 我。。。 我也忘了哎,就找到了一个好办法,分享给大家: 第一种情况:已经连接上的wifi,怎么知道密码? 打开:控制面板\网络和 Internet\网络连接 然后右击wifi连接的无线网卡,选择状态 然后像下图一样: 第二种情况:前提是我不知道啊,但是我以前知道密码。 此时可以利用dos命令了 1、利用netsh wlan...

上班一个月,后悔当初着急入职的选择了

最近有个老铁,告诉我说,上班一个月,后悔当初着急入职现在公司了。他之前在美图做手机研发,今年美图那边今年也有一波组织优化调整,他是其中一个,在协商离职后,当时捉急找工作上班,因为有房贷供着,不能没有收入来源。所以匆忙选了一家公司,实际上是一个大型外包公司,主要派遣给其他手机厂商做外包项目。**当时承诺待遇还不错,所以就立马入职去上班了。但是后面入职后,发现薪酬待遇这块并不是HR所说那样,那个HR自...

女程序员,为什么比男程序员少???

昨天看到一档综艺节目,讨论了两个话题:(1)中国学生的数学成绩,平均下来看,会比国外好?为什么?(2)男生的数学成绩,平均下来看,会比女生好?为什么?同时,我又联想到了一个技术圈经常讨...

总结了 150 余个神奇网站,你不来瞅瞅吗?

原博客再更新,可能就没了,之后将持续更新本篇博客。

副业收入是我做程序媛的3倍,工作外的B面人生是怎样的?

提到“程序员”,多数人脑海里首先想到的大约是:为人木讷、薪水超高、工作枯燥…… 然而,当离开工作岗位,撕去层层标签,脱下“程序员”这身外套,有的人生动又有趣,马上展现出了完全不同的A/B面人生! 不论是简单的爱好,还是正经的副业,他们都干得同样出色。偶尔,还能和程序员的特质结合,产生奇妙的“化学反应”。 @Charlotte:平日素颜示人,周末美妆博主 大家都以为程序媛也个个不修边幅,但我们也许...

MySQL数据库面试题(2020最新版)

文章目录数据库基础知识为什么要使用数据库什么是SQL?什么是MySQL?数据库三大范式是什么mysql有关权限的表都有哪几个MySQL的binlog有有几种录入格式?分别有什么区别?数据类型mysql有哪些数据类型引擎MySQL存储引擎MyISAM与InnoDB区别MyISAM索引与InnoDB索引的区别?InnoDB引擎的4大特性存储引擎选择索引什么是索引?索引有哪些优缺点?索引使用场景(重点)...

女朋友过生日,我花了20分钟给她写了一个代理服务器

女朋友说:“看你最近挺辛苦的,我送你一个礼物吧。你看看想要什么,我来准备。” 我想了半天,从书到鞋子到电子产品最后到生活用品,感觉自己什么都不缺,然后和她说:“你省省钱吧,我什么都不需要。” 她坚持要送:“不行,你一定要说一个礼物,我想送你东西了。” 于是,我认真了起来,拿起手机,上淘宝逛了几分钟,但还是没能想出来缺点什么,最后实在没办法了:“这样吧,如果你实在想送东西,那你就写一个代理服务器吧”...

记一次腾讯面试,我挂在了最熟悉不过的队列上……

腾讯后台面试,面试官问:如何自己实现队列?

如果你是老板,你会不会踢了这样的员工?

有个好朋友ZS,是技术总监,昨天问我:“有一个老下属,跟了我很多年,做事勤勤恳恳,主动性也很好。但随着公司的发展,他的进步速度,跟不上团队的步伐了,有点...

我入职阿里后,才知道原来简历这么写

私下里,有不少读者问我:“二哥,如何才能写出一份专业的技术简历呢?我总感觉自己写的简历太烂了,所以投了无数份,都石沉大海了。”说实话,我自己好多年没有写过简历了,但我认识的一个同行,他在阿里,给我说了一些他当年写简历的方法论,我感觉太牛逼了,实在是忍不住,就分享了出来,希望能够帮助到你。 01、简历的本质 作为简历的撰写者,你必须要搞清楚一点,简历的本质是什么,它就是为了来销售你的价值主张的。往深...

程序员写出这样的代码,能不挨骂吗?

当你换槽填坑时,面对一个新的环境。能够快速熟练,上手实现业务需求是关键。但是,哪些因素会影响你快速上手呢?是原有代码写的不够好?还是注释写的不够好?昨夜...

带了6个月的徒弟当了面试官,而身为高级工程师的我天天修Bug......

即将毕业的应届毕业生一枚,现在只拿到了两家offer,但最近听到一些消息,其中一个offer,我这个组据说客户很少,很有可能整组被裁掉。 想问大家: 如果我刚入职这个组就被裁了怎么办呢? 大家都是什么时候知道自己要被裁了的? 面试软技能指导: BQ/Project/Resume 试听内容: 除了刷题,还有哪些技能是拿到offer不可或缺的要素 如何提升面试软实力:简历, 行为面试,沟通能...

!大部分程序员只会写3年代码

如果世界上都是这种不思进取的软件公司,那别说大部分程序员只会写 3 年代码,恐怕就没有程序员这种职业。

离职半年了,老东家又发 offer,回不回?

有小伙伴问松哥这个问题,他在上海某公司,在离职了几个月后,前公司的领导联系到他,希望他能够返聘回去,他很纠结要不要回去? 俗话说好马不吃回头草,但是这个小伙伴既然感到纠结了,我觉得至少说明了两个问题:1.曾经的公司还不错;2.现在的日子也不是很如意。否则应该就不会纠结了。 老实说,松哥之前也有过类似的经历,今天就来和小伙伴们聊聊回头草到底吃不吃。 首先一个基本观点,就是离职了也没必要和老东家弄的苦...

2020阿里全球数学大赛:3万名高手、4道题、2天2夜未交卷

阿里巴巴全球数学竞赛( Alibaba Global Mathematics Competition)由马云发起,由中国科学技术协会、阿里巴巴基金会、阿里巴巴达摩院共同举办。大赛不设报名门槛,全世界爱好数学的人都可参与,不论是否出身数学专业、是否投身数学研究。 2020年阿里巴巴达摩院邀请北京大学、剑桥大学、浙江大学等高校的顶尖数学教师组建了出题组。中科院院士、美国艺术与科学院院士、北京国际数学...

立即提问
相关内容推荐