AutoCompleteTextView结合自定义适配器
来源:互联网 发布:mac如何更改用户名称 编辑:程序博客网 时间:2024/05/21 17:51
转载地址:http://www.pocketdigi.com/20130124/981.html?utm_source=tuicool
这里没有用CursorAdapter,而是自己继承BaseAdapter写了个适配器.
与ListView不同,AutoCompleteTextView的适配器除了继承BaseAdapter外,还要实现Filterable接口。Filterable接口中有个getFilter方法,用于获取过滤器,我们需要自己写个继承Filter的过滤器,实现数据库查询。
代码使用了androidannotations.
import java.util.ArrayList;import java.util.List; import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.Filter;import android.widget.Filterable;import android.widget.ImageView;import android.widget.TextView;import cn.jtang.discussion.R;import cn.jtang.discussion.db.UserDB;import cn.jtang.discussion.mode.User; import com.googlecode.androidannotations.annotations.Bean;import com.googlecode.androidannotations.annotations.EBean;import com.googlecode.androidannotations.annotations.RootContext; @EBeanpublic class LoginUsernameAdapter extends BaseAdapter implements Filterable {LayoutInflater mInflater;ArrayList<User> users;String key;@RootContextContext context;@BeanUserDB userDb;DBFilter filter;@Overridepublic int getCount() {// TODO Auto-generated method stubif (users != null && users.size() > 0) {return users.size();}return 0;} @Overridepublic Object getItem(int position) {// TODO Auto-generated method stubreturn users.get(position);} @Overridepublic long getItemId(int position) {// TODO Auto-generated method stubreturn position;} @Overridepublic View getView(final int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubif (mInflater == null) {mInflater = LayoutInflater.from(context);}final User user = users.get(position); View view = mInflater.inflate(R.layout.item_actv_username, null);TextView tv_username = (TextView) view.findViewById(R.id.tv_username);tv_username.setText(user.getUsername());ImageView iv_delete = (ImageView) view.findViewById(R.id.iv_delete);//添加点击事件iv_delete.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stub//点击后删除用户userDb.deleteUser(user);users.remove(position);notifyDataSetChanged();}});return view;}/** * 获取过滤器 */@Overridepublic Filter getFilter() {// TODO Auto-generated method stubif (filter == null) {filter = new DBFilter();}return filter;} /** * 数据库查询过滤器 * * @author Administrator * */private class DBFilter extends Filter {/** * 查询数据库 */@Overrideprotected FilterResults performFiltering(CharSequence prefix) {// TODO Auto-generated method stub//查询结果保存到FilterResults对象里FilterResults results = new FilterResults();List<User> queryUsers = userDb.query(prefix.toString());results.values = queryUsers;results.count = queryUsers.size();return results;} /** * 更新UI */@Overrideprotected void publishResults(CharSequence constraint, FilterResults results) {// TODO Auto-generated method stubList<User> queryUsers = (List<User>) results.values;//把结果读取出复制到users里if (users == null) {users = new ArrayList<User>();}if (users.size() > 0) {users.clear();} if (queryUsers != null && queryUsers.size() > 0)for (User user : queryUsers) {users.add(user);notifyDataSetChanged();}} }}
© 2013, 冰冻鱼. 请尊重作者劳动成果,复制转载保留本站链接! 应用开发笔记
注意:注意参考Filter的用法!
0 0
- AutoCompleteTextView结合自定义适配器
- Android 开发 AutoCompleteTextView结合自定义的适配器,查询数据库
- AutoCompleteTextView自定义适配器
- android开发 AutoCompleteTextView自定义适配器
- android的autocompletetextview适配器 自定义
- 自定义AutoCompleteTextView
- 自定义AutoCompleteTextView
- 自定义AutoCompleteTextView
- 自定义AutoCompleteTextView
- 自定义AutoCompleteTextView
- 自定义AutoCompleteTextView
- SQLite与AutoCompleteTextView结合使用
- AutoCompleteTextView与TextWatcher的结合
- SQLite与AutoCompleteTextView结合使用
- AutoCompleteTextView与TextWatcher的结合
- android AutoCompleteTextView 自定义BaseAdapter
- android AutoCompleteTextView 自定义BaseAdapter
- 自定义AutoCompleteTextView(续)
- 关于java网络编程中 java.net.SocketException: Connection reset 异常的原因
- <blockquote>标签,长文本引用
- java设计模式系列--命令模式(二)
- Eclipse 活动标签标题乱码 问题解决方案
- MFC学习笔记_动态创建1
- AutoCompleteTextView结合自定义适配器
- Android四大组件之ContentProvider
- 三极管的工作原理!给你一个真正的三极管
- 深入了解Activity-生命周期
- iOS响应式编程学习ReactiveCocoa-1
- C 语言基础
- HDU 4871 Shortest-path tree (树分治之点分治 最短路径树问题)
- 使用<br>标签分行显示文本
- JAVA 对象引用,以及对象赋值