初学Android,使用ContentResolver获取自己实现的ContentProvider的数据(五十六)
2012-09-21 15:57
549 查看
下面的例子是使用ContentResolver获取自己实现的ContentProvider的数据
界面和上一篇相同
下面是主界面
注意这两处代码,使用了Uri作为参数
界面和上一篇相同
下面是主界面
package WangLi.IO.DictResolver; import java.util.ArrayList; import java.util.HashMap; import java.util.Map; import android.app.Activity; import android.content.ContentResolver; import android.content.ContentValues; import android.content.Intent; import android.database.Cursor; import android.os.Bundle; 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 = null; Button search = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 获取系统的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 source) { //获取用户输入 String word = ((EditText)findViewById(R.id.word)) .getText().toString(); String detail = ((EditText)findViewById(R.id.detail)) .getText().toString(); //插入生词记录 ContentValues values = new ContentValues(); values.put(Words.Word.WORD , word); values.put(Words.Word.DETAIL , detail); contentResolver.insert(Words.Word.DICT_CONTENT_URI , values); //显示提示信息 Toast.makeText(DictResolver.this, "添加生词成功!" , 8000) .show(); } }); // 为search按钮的单击事件绑定事件监听器 search.setOnClickListener(new OnClickListener() { @Override public void onClick(View source) { // 获取用户输入 String key = ((EditText) findViewById(R.id.key)).getText() .toString(); // 执行查询 Cursor cursor = contentResolver.query( 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(Words.Word.WORD, cursor.getString(1)); map.put(Words.Word.DETAIL, cursor.getString(2)); result.add(map); } return result; } }
注意这两处代码,使用了Uri作为参数
contentResolver.insert(Words.Word.DICT_CONTENT_URI , values); Cursor cursor = contentResolver.query( Words.Word.DICT_CONTENT_URI, null , "word like ? or detail like ?" , new String[]{"%" + key + "%" , "%" + key + "%"} , null);
相关文章推荐
- Android ContentProvider与ContentResolver实现应用程序间的数据共享
- Android笔记使用ContentResolver操作ContentProvider中的数据
- android学习:使用它ContentProvider获取其他程序共享的数据
- android数据存储ContentProvider数据获取ContentResolver
- 我的android 第25天 - 使用ContentResolver操作ContentProvider中的数据
- Android学习19--使用ContentProvider实现数据共享
- android数据存储读取6:contentProvider的使用(提供自己应用的数据)
- 使用ContentProvider和ContentResolver实现应用程序间的数据共享
- Android 使用ContentProvider ContentResolver 实现增删改查
- Android疑惑之使用ContentProvider实现数据共享
- Android疑惑之使用ContentProvider实现数据共享
- 使用内容提供者ContentProvider与内容访问者ContentResolver实现拿到另外一个项目的数据库数据
- Android学习之 使用ContentProvider实现数据共享
- 初学Android,自己实现ContentProvider(五十五)
- android 中使用ContentResolver操作ContentProvider中的数据
- Android之使用Contentprovider对外共享数据和实现数据监听变化
- Android ContentProvider(内容提供者{模拟底层})和Contentresolver(内容接受者{实现对ContentProvider数据的修改})
- Android四大组件之使用ContentProvider实现数据共享
- Android笔记(五十六) Android四大组件之一——ContentProvider,实现自己的ContentProvider
- Android开发学习之使用ContentProvider实现数据共享