1.在很多情况下,我们都要用到ListView,但是用GridView是否更好呢?
答案: GridView同样可以实现ListView的功能,所以最好是用GridView,原因是为了避免日后的修改,例如,当前使用的是ListView,日后老板要改成网格显示,那是否又要改成
GridView呢。再例如,很多软件都有网格显示和列表显示切换功能,其实都应该是GridView才对,变的是列数属性,和item布局(遗憾的是我在写FileExplorer时没有想到这一点)
2.1.为了减少xml文件的冗余,个人认为, xml中关心的是控件,不关心控件上的文字和背景图片,所以这个应该在java文件中动态控制。例如
一个xml文件被多个Activity引用,它们的控件和布局都是一样的,里面都包含一个按钮,不同的是每个Activity的按钮文本内容不同,那么我们没有必要为因为文本内容不同,
而在xml中添加多个button,这样做的话会导致日后修改的工作量大大增加。修改一个xml文件要5分钟,修改一个Activity和Adapter类需要10分钟。如果有50个这样的文件需要修改的
时间是50*15= 12.5个小时
3.对于View层中包含AbosListView的整合。
xml文件的整合:多个listView的item布局元素相同,那么应该把它抽取出来单独作为一个item.xml供其他xml文件引用。
Activity之间的的整合:如果多个Activity使用引用同一个xml文件布局 this.setContentView(R.layout.file_list),那么这几个activity是可以合并到一起的。
Activity引用多个xml文件的整合: 经过测试可以使用 setContentView(R.layout.sec);来切换到不同的布局
public void onClick(View v)
{ setContentView(R.layout.sec);
Button btn = (Button) MainActivity.this.findViewById(R.id.cbtnBackup);
btn.setBackgroundColor(Color.GREEN);
Log.i("sqk","gv=="+gridView);
}
Activity类和Adapter的整合:也许多个Activity可以整合到一起,但是发现他们有各自的Adapter类,这些Adapter类的逻辑都比较复杂,无法整合成一个Adapter类,那就不整合,
让一个Activity根据情况调用不同的Adapter,这也是适配器模式的体现(让一个Activity适配多个Adapter)
2.有关CheckBox的多选上传。
总体思维是:一定要把握是view层触发导致了数据层的变化,只要把握了这个思想就可以很容易的写出有关CheckBox的多选程序,无需死记硬背。
如果多选没有CheckBox,(例如点击一张图片,图片的边框变绿,表示被选中)则我们可以这么想,CheckBox其实就是一个类,一个记录了是否被选中的类,里面肯定有一个boolean属性值。所以有2种思路:①自己定义一个类似于CheckBox的控件
②把所有的选中状态存储到一个Map中,根据key再取出。