import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

import android.os.Bundle;
import android.provider.UserDictionary.Words;
import android.app.Activity;
import android.content.ContentResolver;
import android.content.ContentValues;
import android.content.Intent;
import android.database.Cursor;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class DictResolver extends Activity {
  ContentResolver contentResolver;
  Button insert;
  Button search;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_dict_resolver);
    //获取系统的ContentResolver对象
    contentResolver = getContentResolver();
    insert = (Button) findViewById(R.id.insert);
    search = (Button) findViewById(R.id.search);
    //为insert按钮的单击事件绑定事件监听器
    insert.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
        // 获取用户输入
        String word = ((EditText)findViewById(R.id.word)).getText().toString();
        String detail = ((EditText)findViewById(R.id.detail)).getText().toString();
        //插入生词记录
        ContentValues values = new ContentValues();
        values.put(mediaprovidertest.Words.Word.WORD, word);
        values.put(mediaprovidertest.Words.Word.DETAIL, detail);
        contentResolver.insert(mediaprovidertest.Words.Word.DICT_CONTENT_URI, values);
        //显示提示信息
        Toast.makeText(DictResolver.this, "添加单词成功!", 8000).show();
      }
    });
    //为search按钮的单击事件绑定事件监听器
    search.setOnClickListener(new OnClickListener() {

      @Override
      public void onClick(View v) {
        // 获取用户输入
        String key = ((EditText)findViewById(R.id.key)).getText().toString();
        //执行查询
        Cursor cursor = contentResolver.query(
            mediaprovidertest.Words.Word.DICT_CONTENT_URI,
            null, "word like ? or detail like ?",
            new String[]{"%"+key+"%","%"+key+"%"}, null);
        //创建一个Bundle
        Bundle data = new Bundle();
        data.putSerializable("data", converCursorToList(cursor));
        //创建一个Intent
        Intent intent = new Intent(DictResolver.this, ResultActivity.class);
        intent.putExtras(data);
        //启动Activity
        startActivity(intent);
      }
    });
  }
  private ArrayList<Map<String, String>> converCursorToList(Cursor cursor){
  ArrayList<Map<String, String>> result = new ArrayList<Map<String,String>>();
  //遍历Cursor结果集
  while(cursor.moveToNext()){
    //将结果集中的数据存入ArrayList中
    Map<String, String> map = new HashMap<String, String>();
    //取出查询记录中第2列、第3列的值
    map.put(mediaprovidertest.Words.Word.WORD, cursor.getString(1));
    map.put(mediaprovidertest.Words.Word.DETAIL, cursor.getString(2));
    result.add(map);
  }
  return result;
  }

}

使用ContentResolver添加数据、查询数据的更多相关文章

  1. java数据库 JDBC操作MySQL数据库常用API 部门表和员工表 创建表 添加数据 查询数据

    package com.swift.department; import java.sql.Connection; import java.sql.PreparedStatement; import ...

  2. 利用JDBC工具类添加和查询数据-Java(新手)

    JDBC工具类: 1 package cn.lxr.jdbclx; 2 3 import java.sql.*; 4 5 public class JDBCUtils { 6 private stat ...

  3. java连接mysql数据查询数据

    package com.cn.peitest.connectDatabase; import java.sql.Connection; import java.sql.DriverManager; i ...

  4. Web jquery表格组件 JQGrid 的使用 - 7.查询数据、编辑数据、删除数据

    系列索引 Web jquery表格组件 JQGrid 的使用 - 从入门到精通 开篇及索引 Web jquery表格组件 JQGrid 的使用 - 4.JQGrid参数.ColModel API.事件 ...

  5. SQL Server 的表数据简单操作(表数据查询)

    --表数据查询----数据的基本查询-- --数据简单的查询--select * | 字段名[,字段名2, ...] from 数据表名 [where 条件表达式] 例: use 商品管理数据库 go ...

  6. C# 对sharepoint 列表的一些基本操作,包括添加/删除/查询/上传文件给sharepoint list添加数据

    转载:http://www.cnblogs.com/kivenhou/archive/2013/02/22/2921954.html 操作List前请设置SPWeb的allowUnsafeUpdate ...

  7. olacle数据库员工表的创建,及插入数据,添加约束,删除列,查询数据的sql语句

    ---删除原有的员工表drop TABLE employee;---创建员工表CREATE TABLE employee       (       empno NUMBER(4) NOT NULL, ...

  8. Oracle的学习二:表管理(数据类型、创建/修改表、添加/修改/删除数据、数据查询)

    1.Oracle表的管理 表名和列名的命名规则: 必须以字母开头: 长度不能超过30个字符: 不能使用oracle的保留字: 只能使用如下字符:A-Z, a-z, 0-9, $, # 等. Oracl ...

  9. SQL Server 2005中的分区表(二):如何添加、查询、修改分区表中的数据(转)

    在创建完分区表后,可以向分区表中直接插入数据,而不用去管它这些数据放在哪个物理上的数据表中.接上篇文章,我们在创建好的分区表中插入几条数据 insert Sale ([Name],[SaleTime] ...

  10. MVC实用架构设计(三)——EF-Code First(4):数据查询

    前言 首先对大家表示抱歉,这个系列已经将近一个月没有更新了,相信大家等本篇更新都等得快失望了.实在没办法,由于本人水平有限,写篇博客基本上要大半天的时间,最近实在是抽不出这么长段的空闲时间来写.另外也 ...

随机推荐

  1. js 读写cookie。不同路径会储存各自的cookie。而 在v.net环境下读写是在 / 根目录。

    所以如果全站不分path 的 话.应该显示的写上 path .设置为根目录 function setCookie(name, value) { document.cookie = name + &qu ...

  2. Python学习笔记--XML的应用

    XML的定义 XML 指可扩展标记语言(EXtensible Markup Language) XML 是一种标记语言,很类似 HTML XML 的设计宗旨是传输数据,而非显示数据 XML 标签没有被 ...

  3. Lua了解 & 为什么游戏开发用Lua

    参考这篇文章 https://www.zhihu.com/question/21717567 看来就是网易风云为了让人写外挂不方便而采用的冷门语言.当然冷门的语言不代表不好用啦. Lua 虚拟机小,嵌 ...

  4. 2 CSS

    2 CSS CSS基础 html 在一个网页中负责的事情是一个页面的结构css(层叠样式表) 在一个网页中主要负责了页面的数据样式. 编写css代码的方式:     第一种: 在style标签中编写c ...

  5. The new day of my blog

    今天开始了我的博客建造之旅,作为一个ACMer(虽说是弱校的),我也想象其他人一样把自己的题解和心得记录下来,一来可以和大家分享一下,二来也可以留给将来的自己作回顾,希望众大神能够给以指导指导,让我这 ...

  6. IIS_Mvc发布

    网站发布步骤: 这部分是转载文章 在此标明出处,以前有文章是转的没标明的请谅解,因为有些已经无法找到出处,或者与其它原因. 如有冒犯请联系本人,或删除,或标明出处. 因为好的文章,以前只想收藏,但连接 ...

  7. SAM格式 及 比对工具之 samtools 使用方法

    参考资料: SAMtools(官网) SAM Spec v1.4 (SAM格式 说明书) (重要) samtools-1.3.1 使用手册 (SAMtools软件说明书) samtools常用命令详解 ...

  8. css_兼容IE和FF的写法

    CSS对浏览器器的兼容性具有很高的价值,通常情况下IE和Firefox存在很大的解析差异,这里介绍一下兼容要点. 常见兼容问题: 1.DOCTYPE 影响 CSS 处理2.FF:div 设置 marg ...

  9. fushioncharts的使用教程

    FusionCharts 是使用javascript 实现统计图表的js组件:其官网地址:http://www.fusioncharts.com.其早期版本FusionCharts Free 是基于f ...

  10. C# EXCEL(.xls和.xlsx)导入到数据库

    C# EXCEL(.xls和.xlsx)导入到数据库  转(http://www.cnblogs.com/bart-cai/articles/2716555.html) 原理:1.判断是否是Excel ...