最近,在解决一个Android问题,发现Android界面的点击使用无正确响应。
分析可得:点击界面—>视图接收点击消息—>对应消息函数运行。
首先想到的,是视图上有无新界面遮挡。
经调试以后,发现并无该问题。
继续研究,发现视图有点击过程和接收过程,但比较奇怪的是,没有对应的接收视图收到相关消息。
继续研究,发现界面过程如下:
1)界面自己制作了适配器(Adapter);
2)每次会根据实际数据new新的适配器;
3)视图和适配器绑定。
而由于每次重新生成适配器且和视图重新绑定,导致视图上的各个部分都是新的,导致视图部分和适配器没有绑定。
解决方法:
1)如适配器已存在,使用已存在适配器即可,最多改变下旧有的数据;
2)视图和适配器绑定一次,使界面部分和视图对应。
该问题解决。
伪代码如下:
if(null == adapter) {
adapter = new Adapter(Class.this);
adapter.setData(data);
view.setAdapter(adapter);
} else {
adapter.setData(data);
view.notifyDataSetChanged();
}
版权声明:本文为wangzhezhilu001原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。