android UI 设计 编程 思维

来源:互联网 发布:淘宝怎么修改好评 编辑:程序博客网 时间:2024/06/10 07:45

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再取出。