Android中通过Spinner监听更新ListView中item
在实际安卓开发中可能遇到这种问题,选择Spinner更新ListView实现筛选功能,分享如下:
productSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String str = parent.getItemAtPosition(position).toString();//将Spinner选中的item转化为字符串
if(!str.equals("请选择设备")){
Toast.makeText(mContext, "你选择了:"+ str, Toast.LENGTH_SHORT).show();
}
ArrayList changeList = new ArrayList();//创建一个临时列表
update();//更新数据
changeList.clear();//清空List避免重叠
if(!str.equals("请选择设备")){
for(int i = 0;i < homeAdapter.getCount();i++){//遍历所有数据,找到与Spinner相同的item
if(str.equals(homeAdapter.getItem(i).getProductname())){
changeList.add(homeAdapter.getItem(i));//存放选择的Spinneritem
changeAdapter.setData(changeList);//通过适配器更新Listview
homelistView.setAdapter(changeAdapter);//更新筛选后的ListView
}
}
}else{
homelistView.setAdapter(homeAdapter);//更新整个列表
}
}