根据EditText输入框的内容动态更改listView的数据
2017-04-21 10:59
459 查看
我们先来看一下效果图:
我们输入要搜索的型号,型号列表的数据跟着变动,怎么来实现呢,我们先来看一下思路:
1、监测EditText的内容变化,利用Handler来通知子线程;
2、在子线程中调用String的contains()方法,将含有输入内容的数据放在新的集合里面,调用在adapter写
的adapterChange()方法来更改界面。
那么我们就跟着这个思路来看代码:
对EditText进行监测
通知子线程数据变化
更改界面
设置叉叉的点击事件,即清空功能
这样就可以完成我们想要的效果了。
我们输入要搜索的型号,型号列表的数据跟着变动,怎么来实现呢,我们先来看一下思路:
1、监测EditText的内容变化,利用Handler来通知子线程;
2、在子线程中调用String的contains()方法,将含有输入内容的数据放在新的集合里面,调用在adapter写
的adapterChange()方法来更改界面。
那么我们就跟着这个思路来看代码:
对EditText进行监测
searchEdit.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub } @Override public void beforeTextChanged(CharSequence arg0, int arg1, int arg2, int arg3) { // TODO Auto-generated method stub } @Override public void afterTextChanged(Editable s) { // TODO Auto-generated method stub //当有内容的时候,出现删除图标 if (s.length() == 0) { deletImag.setVisibility(View.GONE); } else { deletImag.setVisibility(View.VISIBLE); } //通知子线程数据变化了 mHandler.post(eChange); } }); }
通知子线程数据变化
Runnable eChange = new Runnable() { @Override public void run() { String searchData = searchEdit.getText().toString().trim(); //更改界面 getmDataSub(modelArray, searchData); } };
更改界面
/** * 获得根据搜索框的数据data来从元数据筛选,筛选出来的数据放入mDataSubs里 * * @param mDataSubs * @param data */ private void getmDataSub(JSONArray array, String data) { newJsonArry = new JSONArray(); int length = array.length(); for (int i = 0; i < length; ++i) { if (array.optString(i).contains(data)) { newJsonArry.put(array.optString(i)); } } modelAdapter.adapterChange(newJsonArry, modelIndex); }
设置叉叉的点击事件,即清空功能
/** * 设置叉叉的点击事件,即清空功能 */ private void setDeletOnClick() { deletImag.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub searchEdit.setText(""); } }); }
这样就可以完成我们想要的效果了。
相关文章推荐
- Android 根据Edittext内容动态改变Listview显示的数据
- 在edittext中输入内容,动态匹配更新 listview的数据(EditText中边输入,listView边更新)
- EditText + ListView 之间的搜索配置 动态加载ListView数据
- android根据内容动态更改TextView的字体大小
- 学习笔记-Android之ListView随EditText输入内容动态改变
- 【android】EditText监听,根据输入内容查询数据并动态更新ListView
- 根据Edittext搜索,listview动态显示
- Listview 的item中嵌套EditText,更改EditText中的数据时出现数据紊乱
- EditText+ListView实现从动态显示数据库数据
- Android 动态显示隐藏EditText 输入框内容
- 根据输入框EditText是否有内容来对按钮的点击权限控制
- Android中给数据库添加EditText中内容,添加后数据为空的情况
- 使用EditText+ListView并结合TextWatcher实现输入关键字筛选数据
- 程序中动态更改TextView显示内容并获取res的字符串
- iOS 根据文本内容为TextView动态定义高度
- ListView中嵌入一个或多个EditText导致数据混乱解决方法
- 使用TextWatcher监听EditText的文本变化之后动态改变EditText里面的内容
- 使用EditText+ListView并结合TextWatcher实现输入关键字筛选数据
- 使用EditText+ListView并结合TextWatcher实现输入关键字筛选数据
- android ListView使用ViewHolder优化时,EditText设置TextWatcher时,滑动ListView导致内容错乱