ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:23.23KB ,
资源ID:3316375      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3316375.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Android搜索历史的实现0918.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

Android搜索历史的实现0918.docx

1、Android搜索历史的实现0918Android-搜索历史的实现-(2016-9-18)项目: SearchModel29 环境: Android Studio 1.0 源码JavaDBHelper.java /* * SQLite辅助类 */public class DBHelper extends SQLiteOpenHelper /* * 构造器 * param context */ public DBHelper(Context context) super(context, dbkeyword, null, 1); Override public void onCreate(SQL

2、iteDatabase db) / 创建: 建表+插入数 db.execSQL( create table kw(_id integer primary key autoincrement,keyword varchar,inputno integer); / 插入初始数据 db.execSQL(insert into kw (keyword,inputno) values(book,0); db.execSQL(insert into kw (keyword,inputno) values(书本,0); Override public void onUpgrade(SQLiteDatabas

3、e db, int oldVersion, int newVersion) / 升级 Kw.java /* * Created by 钧 on 2016/9/18. * 关键词实体类 */public class Kw public int id; public String keyword; public int inputno; public int getId() return id; public void setId(int id) this.id = id; public String getKeyword() return keyword; public void setKeyw

4、ord(String keyword) this.keyword = keyword; public int getInputno() return inputno; public void setInputno(int inputno) this.inputno = inputno; Override public String toString() return Kw + id= + id + , keyword= + keyword + + , inputno= + inputno + ; KwDao.java/* * Created by 钧 on 2016/9/18. * 封装对关键

5、词表的数据库访问操作 */public class KwDao public KwDao() public KwDao(Context context) this.context = context; private Context context; private String tablename = kw; /* * 判断数据库中是否存在key * param key * return */ public boolean contains(String key) List list = new ArrayList(); / 实例化 辅助类 DBHelper helper = new DBH

6、elper(context); / 获取SQLite数据库对象 SQLiteDatabase db = helper.getReadableDatabase(); / 执行查询命令,接收游标返回 Cursor cursor = db.rawQuery(select count(*) from +this.tablename + where keyword=+key+,null); int number = 0; while(cursor.moveToNext()/moveToNext:移动到下一行 number = cursor.getInt(0);/count(*) cursor.close

7、();/ 游标关闭 db.close();/ db关闭 if (number = 0) return false; else return true; /* * 插入一个全新的关键词 * param key * return */ public long insert(String key) DBHelper helper = new DBHelper(context); SQLiteDatabase db = helper.getReadableDatabase(); / 准备插入的数据 ContentValues values = new ContentValues();/ values.

8、put(keyword, key); values.put(inputno, 1); long id = db.insert(tablename, null, values);/ Log.i(spl, insert id= + id); db.close();/ 关闭连接 return id; /* * 增加某个关键词的使用频度 * param key */ public void update(String key) DBHelper helper = new DBHelper(context); SQLiteDatabase db = helper.getReadableDatabase(

9、); db.execSQL(update kw set inputno=inputno+1 where keyword=+key+); db.close();/ 关闭连接 /* * 根据用户的输入返回和这个词相关的关键词集合 * param key * return */ public List select(String key) List list = new ArrayList(); / 实例化 辅助类 DBHelper helper = new DBHelper(context); / 获取SQLite数据库对象 SQLiteDatabase db = helper.getReadab

10、leDatabase(); / 执行查询命令,接收游标返回 Cursor cursor = db.rawQuery(select * from +this.tablename + where keyword like %+key+% order by inputno desc LIMIT 10,null); while(cursor.moveToNext()/moveToNext:移动到下一行 Kw kw = new Kw(); kw.setId(cursor.getInt(0); kw.setKeyword(cursor.getString(1); kw.setInputno(cursor.

11、getInt(2); list.add(kw);/ 添加到集合 cursor.close();/ 游标关闭 db.close();/ db关闭 return list; MyAdapter.java/* * Created by uilubo on 2015/9/11. * 适配器 */public class MyAdapter extends BaseAdapter List list; LayoutInflater inflater; public MyAdapter(Context context) this.inflater = LayoutInflater.from(context

12、); public void setList(List list) this.list = list; Override public int getCount() return (list=null)?0:list.size();/ 三元运算 Override public Object getItem(int position) return list.get(position); Override public long getItemId(int position) return position; Override public View getView(final int posi

13、tion, View convertView, ViewGroup parent) ViewHolder holder = null; if(convertView = null) convertView = inflater.inflate(R.layout.item, null); holder = new ViewHolder(); holder.text = (TextView) convertView.findViewById(R.id.text); convertView.setTag(holder); else holder = (ViewHolder) convertView.

14、getTag(); Kw item = list.get(position); holder.text.setText(item.getKeyword(); return convertView; public class ViewHolder TextView text; MainActivity.javapublic class MainActivity extends Activity implements AdapterView.OnItemClickListener ListView lv; EditText ed_input; KwDao dao; MyAdapter adapte

15、r; Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); initData(); private void initData() adapter = new MyAdapter(this); lv.setAdapter(adapter); List list = dao.select(); updateListView(list); private vo

16、id initView() dao = new KwDao(this); ed_input = (EditText) findViewById(R.id.ed_input); lv = (ListView) findViewById(R.id.lv); lv.setOnItemClickListener(this); / 对输入框的改变进行实时监听 ed_input.addTextChangedListener(new TextWatcher() Override public void beforeTextChanged(CharSequence s, int start, int coun

17、t, int after) Override public void onTextChanged(CharSequence s, int start, int before, int count) Override public void afterTextChanged(Editable s) / 在用户输入之后, 按照输入显示建议列表 String key = ed_input.getText().toString(); List list = dao.select(key); updateListView(list); ); private void updateListView(Lis

18、t list) adapter.setList(list); adapter.notifyDataSetChanged(); public void btnClick(View v) / 插入到数据库中 String key = ed_input.getText().toString(); if (dao.contains(key) dao.update(key);/ +1 else dao.insert(key); / 新词条 Toast.makeText(this,查询:+key,Toast.LENGTH_SHORT).show(); Override public void onItemClick(AdapterView parent, View view, int position, long id) Kw kw = (Kw) parent.getItemAtPosition(position); Toast.makeText(this,查询:+kw.getKeyword(),Toast.LENGTH_SHORT).show(); ed_input.setText(kw.getKeyword(); / 执行查询 dao.update(kw.getKeyword();/ +1 xml布局Main item 清单

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2