1 ContentResolver内容访问者就是通过Uri来访问ContentPRovder中提供的数据。调用 ContentResolver对象的方法就能访问内容提供者。 代码如下:
public class MainActivity extends AppCompatActivity { private ContentResolver cr; private EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.et_main_id); //获取内容访问者 cr = getContentResolver(); } public void getData(View view){ //加安全协议 Uri uri=Uri.parse("content://com.zking.g150831_android16_sqlite.data"); Cursor cursor= cr.query(uri,null,null,null,null); while(cursor.moveToNext()){ int id=cursor.getInt(cursor.getColumnIndex("_id")); String name=cursor.getString(cursor.getColumnIndex("name")); int age=cursor.getInt(cursor.getColumnIndex("age")); } }}(题外话) 2操作Uri的工具类UriMatcher UriMatcher 类主要用于匹配Uri. 有三个参数: authority:匹配的授权者。 path:路径 code:返回代码
第一步初始化:
UriMatcher matcher = new UriMatcher(UriMatcher.NO_MATCH);第二步注册需要的Uri:
matcher.addURI("com.zking.android24", "people", PEOPLE); matcher.addURI("com.zking.android24", "person/#", PEOPLE_ID);第三步,与已经注册的Uri进行匹配:
[java] view plain copy print?Uri uri = Uri.parse("content://" + "com.zking.android24" + "/people"); int match = matcher.match(uri); switch (match) { case PEOPLE: return "vnd.android.cursor.dir/people"; case PEOPLE_ID: return "vnd.android.cursor.item/people"; default: return null; }新闻热点
疑难解答