Android控件ListView和Spinner组合控件案例

ListView和Spinner组合控件案例
最终效果图
Android控件ListView和Spinner组合控件案例_第1张图片

Android控件ListView和Spinner组合控件案例_第2张图片
Android控件ListView和Spinner组合控件案例_第3张图片
编程思路:
一、创建一个工程后,我个人比较喜欢先对xml进行布局。
activity_layout.xml整体采用垂直线性布局方式

  • 内部嵌套一个水平线性布局,并在其中设置Spinner、EditText和ImageButton控件
  • 设置ListView控件

二、写主类文件
首先,分析数据发现每一条数据proArr是产品名称、catArr是分类名称(与proArr一一对应)、prodImg是drawable照片名称。
接着,对catArr 分类名称整合,消除冗余项。
在Spinner的setOnItemSelected()内部类中设置ListView显示的内容。
根据按的Spinner的position位置,获取相应的类的名称。把同类产品及其信息通过HashMap方式打包,放到ArrayList(数据带)中。通过SimpleAdapter在应用上下文中,添加ArrayList,用自定义的item_listview.xml进行显示,把键名称和控件id对应起来。这样就配置好一个SimpleAdapter,将它放入listView中就可以了。

String cat_str = cat_arr[position];
ArrayList showArrayList = new ArrayList();
HashMap showHashMap;
for (int i = 0; i < proArr.length; i++) {
    showHashMap = new HashMap();
    if (catArr[i].equals(cat_str)) {
        showHashMap.put("pro", proArr[i]);
        showHashMap.put("category", cat_str);
        showHashMap.put("img", proImg[i]);
        showArrayList.add(showHashMap);
    }
}
SimpleAdapter simpleAdapter = new SimpleAdapter(getApplicationContext(),showArrayList,R.layout.item_listview,new String[]{"pro","category","img"},new int[]{R.id.title,R.id.category,R.id.img});
listView.setAdapter(simpleAdapter);

三、补充:实现模糊查询
在ImageButton.setOnClickListener()内部类中
可以从EditText对象的getText().toString()获取输入的字符串
通过字符串的contains()方法去比对,若字符串中包含输入的字符串则返回true,否则返回false。
这样我们就可以对每一个proArr字符串进行遍历,满足的进行包装。

答案下载: http://download.csdn.net/download/timliangl/10030245
附件数据:
在values文件夹下创建arrays.xml文件,内容如下:


    <string-array name="proArr">
        <item>可口可乐CocaColaitem>
        <item>皮制箱leatherBoxitem>
        <item>统一泡面instantnoodles item>
        <item>Tcl电视item>
        <item>金士顿U盘item>
        <item>中国简史brief history of China item>
        <item>朗科U盘Netacitem>
        <item>海尔空调air conditioneritem>
        <item>张裕红酒 red wineitem>
        <item>MP3播放器item>
        <item>吸类器suction trapitem>
        <item>油烟机 lampblack machineitem>
        <item>口香糖Chewing gumitem>
        <item>唐诗三百首three hundred poems of Tang Dynastyitem>
        <item>拉杆箱pull rod boxitem>
    string-array>
    <string-array name="catArr">
        <item>食品item>
        <item>箱包item>
        <item>食品item>
        <item>家电item>
        <item>数码item>
        <item>图书item>
        <item>数码item>
        <item>家电item>
        <item>食品item>
        <item>数码item>
        <item>家电item>
        <item>家电item>
        <item>食品item>
        <item>图书item>
        <item>箱包item>
    string-array>
    name="prodImg">
        <item>@drawable/sample_thumb_2item>
        <item>@drawable/sample_thumb_2item>
        <item>@drawable/sample_thumb_2item>
        <item>@drawable/sample_thumb_2item>
        <item>@drawable/sample_thumb_2item>
        <item>@drawable/sample_thumb_2item>
        <item>@drawable/sample_thumb_2item>
        <item>@drawable/sample_thumb_2item>
        <item>@drawable/sample_thumb_2item>
        <item>@drawable/sample_thumb_2item>
        <item>@drawable/sample_thumb_2item>
        <item>@drawable/sample_thumb_2item>
        <item>@drawable/sample_thumb_2item>
        <item>@drawable/sample_thumb_2item>
        <item>@drawable/sample_thumb_2item>
    

你可能感兴趣的:(android)