Android树形控件

 Android树形控件notifyDataSetChanged的问题

hy大神  http://blog.youkuaiyun.com/lmj623565791/article/details/40212367 的程序为底 ,参考了 http://blog.youkuaiyun.com/true100/article/details/50608654?ref=myread动态插入数据,修改了动态插入数据notifyDataSetChanged()无效的问题,做个笔记。

在MainActivity添加数据源

private void init() {
		// TODO Auto-generated method stub
		mDatas2.add(new FileBean(21, 0, "1-文件管理系统"));
		mDatas2.add(new FileBean(22, 21, "1-游戏"));
		mDatas2.add(new FileBean(23, 21, "1-文档"));
		mDatas2.add(new FileBean(24, 21, "1-程序"));
		mDatas2.add(new FileBean(25, 22, "1-war3"));
		mDatas2.add(new FileBean(26, 22, "1-刀塔传奇"));
		mDatas2.add(new FileBean(27, 24, "1-面向对象"));
		mDatas2.add(new FileBean(28, 24, "1-非面向对象"));
		mDatas2.add(new FileBean(29, 27, "1-C++"));
		mDatas2.add(new FileBean(30, 27, "1-JAVA"));
		mDatas2.add(new FileBean(31, 27, "1-Javascript"));
		mDatas2.add(new FileBean(32, 28, "1-C"));
	}

通过按钮点击来增加数据

button.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				init();
				mAdapter.insertNodeData(mDatas2,10);
			}
		});


TreeListViewAdapter添加动态数据的方法

	public void insertNodeData(List<Node> list, int defult) {
		try {
			mAllNodes = TreeHelper.getSortedNodes(list, defult);
		} catch (IllegalArgumentException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IllegalAccessException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		mNodes = TreeHelper.filterVisibleNode(mAllNodes);

		notifyDataSetChanged();
	}
另外:
1、mDatas2.add(new FileBean(1, 0, "xxxx")) 里面的数据需要多加注意,有互联关系,如果程序通过网络来获取数据会复杂很多,也需要后台配合。

2、viewHolder.tab.setOnClickListener的加入是考虑在某个层里需要处理事件,而不是单单打开或者关闭展开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值