Android 之EditText自动检索Listview中的数据
来源:互联网 发布:帝江网络 编辑:程序博客网 时间:2024/06/15 17:56
1.直接上代码吧。
public class MainActivity extends Activity { private ListView mlistview; private EditText medittext; List<PersionInfo>lists=new ArrayList<PersionInfo>(); private PersionInfoAdapter mAdapter; //造数据 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mlistview=(ListView) findViewById(R.id.mlistview); medittext=(EditText) findViewById(R.id.medittext); //造数据 lists.add(new PersionInfo("易皇星", "测试数据")); lists.add(new PersionInfo("易皇星", "测试数据")); lists.add(new PersionInfo("测试", "测试数据")); lists.add(new PersionInfo("测试", "测试数据")); // mAdapter=new PersionInfoAdapter(this, lists); mlistview.setAdapter(mAdapter); // medittext.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { filterData(s.toString()); } @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub } }); } class PersionInfoAdapter extends BaseAdapter{ private List<PersionInfo>lists; private Context context; private LayoutInflater imInflater; public PersionInfoAdapter(Context context,List<PersionInfo>lists){ this.context=context; this.lists=lists; imInflater = LayoutInflater.from(context); } //刷新adapter方法 public void updateListView(List<PersionInfo> newlists){ lists=newlists; //重新赋值 notifyDataSetChanged(); //刷新 } @Override public int getCount() { // TODO Auto-generated method stub return lists.size(); } @Override public Object getItem(int position) { // TODO Auto-generated method stub return lists.get(position); } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { //这里就不进行优化了 View inflate = imInflater.inflate(R.layout.listview_item, null); TextView tv_name=(TextView) inflate.findViewById(R.id.tv_name); TextView tv_hobby=(TextView) inflate.findViewById(R.id.tv_hobby); PersionInfo persionInfo = lists.get(position); tv_name.setText(persionInfo.getName()); tv_hobby.setText(persionInfo.getHobby()); return inflate; } } /** * 根据输入框中的值来过滤数据并更新ListView * @param filterStr */ private void filterData(String mesg){ //创建新的集合 List<PersionInfo> newlists=new ArrayList<PersionInfo>(); if(TextUtils.isEmpty(mesg)){ newlists=lists; }else { newlists.clear(); //根据lists集合中的对象字段名过滤 for(PersionInfo sortModel : lists){ String name = sortModel.getName(); if(name.indexOf(mesg.toString()) != -1 ){ //重新添加到新的集合中 newlists.add(sortModel); } } } // 不管怎么样都要刷新 mAdapter.updateListView(newlists); }}
2.效果图。
0 0
- Android 之EditText自动检索Listview中的数据
- Android基础之EditText在ListView中的使用
- android之EditText自动完成
- android listview 含有edittext 数据错乱问题
- android中ListView中的EditText不可编辑
- ListView显示SQLite数据,EditText对数据检索。(全国城市名的显示和搜索)
- Android之ListView滚动到底后自动加载数据
- Android之ListView滚动到底后自动加载数据
- Android之ListView滚动到底后自动加载数据
- Android之ListView滚动到底后自动加载数据
- Android之ListView滚动到底后自动加载数据
- Android之ListView滚动到底后自动加载数据
- android edittext + listview 实现搜索listview中的内容
- Listview 的item中嵌套EditText,更改EditText中的数据时出现数据紊乱
- 自动检索XML数据
- Android 根据EditText搜索框ListView动态显示数据
- Android 根据EditText搜索框ListView动态显示数据
- Android 根据EditText搜索框ListView动态显示数据小结
- HDU 2104 hide handkerchief
- java基础知识整理(2)
- request.getParameter() 和request.getAttribute() 区别
- c语言编写求解数独
- 古老编程环境展——LFS Linux篇
- Android 之EditText自动检索Listview中的数据
- c++程序设计第一章 开始接触c++
- 用全排列方法解决N皇后问题(Leetcode 51)
- 设计模式之状态模式
- JNI - Call Method(Callback Call java methods from c)
- java中的回调函数理解
- java基础知识整理(3)
- leetcode 110. Balanced Binary Tree-平衡二叉树|深度遍历
- 数据结构课程上机实验题(三)