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

ListView和Spinner组合控件案例
最终效果图
选择左上角下拉菜单不同项,ListView发生改变

这里写图片描述
通过EditText输入框输入部分产品名称信息,List View显示相关产品
编程思路:
一、创建一个工程后,我个人比较喜欢先对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文件,内容如下:

<resources>
    <string-array name="proArr">
        <item>可口可乐CocaCola</item>
        <item>皮制箱leatherBox</item>
        <item>统一泡面instantnoodles </item>
        <item>Tcl电视</item>
        <item>金士顿U盘</item>
        <item>中国简史brief history of China </item>
        <item>朗科U盘Netac</item>
        <item>海尔空调air conditioner</item>
        <item>张裕红酒 red wine</item>
        <item>MP3播放器</item>
        <item>吸类器suction trap</item>
        <item>油烟机 lampblack machine</item>
        <item>口香糖Chewing gum</item>
        <item>唐诗三百首three hundred poems of Tang Dynasty</item>
        <item>拉杆箱pull rod box</item>
    </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>
    <array name="prodImg">
        <item>@drawable/sample_thumb_2</item>
        <item>@drawable/sample_thumb_2</item>
        <item>@drawable/sample_thumb_2</item>
        <item>@drawable/sample_thumb_2</item>
        <item>@drawable/sample_thumb_2</item>
        <item>@drawable/sample_thumb_2</item>
        <item>@drawable/sample_thumb_2</item>
        <item>@drawable/sample_thumb_2</item>
        <item>@drawable/sample_thumb_2</item>
        <item>@drawable/sample_thumb_2</item>
        <item>@drawable/sample_thumb_2</item>
        <item>@drawable/sample_thumb_2</item>
        <item>@drawable/sample_thumb_2</item>
        <item>@drawable/sample_thumb_2</item>
        <item>@drawable/sample_thumb_2</item>
    </array>

</resources>
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值