选择部件

来源:互联网 发布:淘宝上好的t恤店知乎 编辑:程序博客网 时间:2024/05/16 18:29

1.适配器

   抽象的讲,适配器可以为多个不相关的API提供一个公共的接口。具体到android来说,适配器为基于选择的部件背后的数据模型提供一个公共的接口。android的适配器负责为选择部件提供数据源,也负责将单独的数据元素转换为显示在选择部件中的特定视图。

   最简单的适配器是ArrayAdapter,我们所要做的就是为这个类的构造器传入一个数组或者一个java.util.List实例,如下:

    String[] items = {"1", "2"};

    new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items);

 

    在设置列表行布局时,不再向适配器构造传入android.R.layout.simple_list_item_1,

    而传入android.R.layout.simple_list_item_single_choice(单选)或android.R.layout.simple_list_item_multiple_choice(多选)

 

2.为调控件(Spinner)

    new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, items);

    //指定用于显示下拉列表的资源

    Spinner.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

    Spinner.setAdapter(ArrayAdapter);

 

3.网格(GridView)

4.自动完成字段(AutoCompleteTextView)

   可以看成是EditText和Spinner的组合

 

5.画廊(Gallery)

   实际上Gallery就是一个水平排列的列表框,画廊中的项目沿水平方向一个接一个排列,当前选中项会突出显示。

   在android设备中,用户可以使用D-pad的左右按钮在画廊中的选项间导航,例如图像预览功能是实用Gallery的经典范例。

 

6.列表(ListView)

   <1>通过布局文件渲染每一行的效果

   <2>通过继承ArrayAdapter,重写getview()方法;

         小技巧,在getView()方法中,先检查converView是否为空,为空才新建一行View,可以让listview更有效率;

                     实用持有者模式,findViewById()方法操作代价较大

         example:

            

   <3>可重用列表

 

7.选用其他适配器

   对于任何适配器,都可以遵循扩展ArrayAdapter并重写getView()的模式来定义行;

   CursorAdapter及其子类对getView()有默认的实现;

   同样,getView()方法会检查接收到的View以便重用,如果值为null,getView()调用newView(),在调用bindView().如果不为空,仅调用bindView(),所以想要扩展CursorAdapter应该重写的是newView()及bindView();

原创粉丝点击