android-ExpandableListView动态操作出现的一系列问题

今天要做一个二级菜单的数据,于是用到了ExpandableListView。其实它的适配器和BaseAdapter差不多。我把删除和修改做到长按事件里面了,但是只发现了这个方法

expandableListView.setOnItemLongClickListener(new OnItemLongClickListener(){
  ....
});

  没有找到如何监听Group的id的方法。然后Google之,发现如下文章:http://blog.csdn.net/t5721654/article/details/6857357 

发现了里面的计算不是自己想的那样,按照链接给的方法做。功能都全部实现了,但是最后测试的时候出现小问题。

我新添加的一个Group然后,立刻删除。会删除第一个。而不是最后一个,按理说list.add(XX);方法之后是添加在最后一个,但是为何remove(X);后,第一个数据不见了,发现

	@Override
	public View getGroupView(int groupPosition, boolean isExpanded,
			View convertView, ViewGroup parent) {
		TextView groupTv = mkGroupView();
		// 设置同getChildView一样
		groupTv.setTag(R.id.xxx01, groupPosition);
		groupTv.setTag(R.id.xxx02, -1); //设置-1表示长按时点击的是父项,到时好判断。
		groupTv.setText(groups[groupPosition]);
		return groupTv;
	}

  就是那个groupPosition居然在调用adapter.notifyDataSetChanged()之后,并没有给出正确的position,而是给了0,所以remove也是第一个。

具体原因我也不清楚,我用其他方式解决了,抛弃了长按的方式,如果有高手看见,告诉我一声。

 

 

posted @ 2013-09-24 00:17  q429786006  阅读(1143)  评论(0编辑  收藏  举报