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. compile,build和execute的区别

    一个c程序的生成要经历以下步骤: 1.编写文本代码,生成c或cpp文件,这时候它还是文本的: 2.编译,就是compile,由c编译程序对你写的代码进行词法和句法分析,发现并报告错误,有错时编译不能通 ...

  2. 如何删除github里面的文件夹?

    按照以下步骤即可(本地删除) 1. git pull you git url2. git checkout 3. rm -r dirName4. git add --all5. git commit  ...

  3. SAP 批量查看凭证更改记录

    1,在凭证上点击环境->凭证变更 查找.2,通过运行程序 SE38:RSSCD1TS 根据对象类.对象标识查找. 3,SE16N/SE16/SE11查看标准表,CDHDR(更改凭证抬头),CDP ...

  4. [转载] Codis作者黄东旭细说分布式Redis架构设计和踩过的那些坑们

    原文: http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=208733458&idx=1&sn=691bfde670fb ...

  5. 08 高效的SQL

    编写高效 SQL 需要以下知识 有关所查询内容的物理组织的知识 数据库能做什么的知识, 例如: 如果你不知道跳跃扫描索引及其用途, 那么你可能会看着模式说”索引丢了” SQL 所有错综复杂的知识 对目 ...

  6. poj2074Line of Sight(直线相交)

    链接 几何细节题. 对于每一个障碍物可以求出它在地产线上的覆盖区间,如下图. 紫色部分即为每个障碍物所覆盖掉的区间,求出所有的,扫描一遍即可. 几个需要注意的地方:直线可能与地产线没有交点,可视区间可 ...

  7. 【服务器防护】iptables 配置详解(非常棒的案例)

    一. iptables 基本命令使用举例 链的基本操作 1.清除所有的规则.1)清除预设表filter中所有规则链中的规则.# iptables -F2)清除预设表filter中使用者自定链中的规则. ...

  8. iOS事件处理之七种手势

    手势在开发中经常用到,所以就简单通俗易懂的说下, 话不多说,直接看代码: // 初始化一个UIimageView UIImageView *imageView = [[UIImageView allo ...

  9. 三种语言(c++、as、lua)中函数的差异性

    对于不同的语言, 尤其是静态语言和动态语言, 对于函数的定义(即如何看待一个函数)和处理截然不同.具体来说可以分为两类: 1.将函数视为第一类型值, 即函数和其他的对象一样, 都是语言中一个普通的对象 ...

  10. 《Java程序设计》实验三 实验报告

    实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程 2 ...