package com.example.ApiTest; import android.content.ContentProvider; import android.content.ContentValues; import android.database.Cursor; import android.database.MatrixCursor; import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.util.Log; import android.widget.Toast; import java.util.Arrays; /** * Created by zhangyong6 on 2015/3/3. */ public class MyContentProvider2 extends ContentProvider { public static final String name = "com.example.ApiTest.MyContentProvider2"; public static final Uri sUri = Uri.parse("content://" + name); private static final String TAG = MyContentProvider2.class.getSimpleName(); @Override public boolean onCreate() { String msg = String.format(">>>>%s onCreate", TAG); showMsg(msg); return true; } @Override public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) { String msg = String.format(">>>>%s query:uri=%s, projection=%s, selection=%s,selectionArgs=%s, sortOrder=%s", TAG, uri, projection, selection, Arrays.toString(selectionArgs), sortOrder); showMsg(msg); MatrixCursor c = new MatrixCursor(new String[]{"name", "sex"}); c.addRow(new String[]{"张三", "男"}); c.addRow(new String[]{"李四", "女"}); c.addRow(new String[]{"王武", "不男不女"}); return c; } private void showMsg(final String msg) { Handler handler = new Handler(Looper.getMainLooper()); handler.post(new Runnable() { @Override public void run() { Toast.makeText(getContext(), msg, Toast.LENGTH_SHORT).show(); } }); Log.e(TAG, msg); } @Override public String getType(Uri uri) { String msg = String.format(">>>>%s getType:uri=%s", TAG, uri); showMsg(msg); return "text/x-zhangyong"; } @Override public Uri insert(Uri uri, ContentValues values) { String msg = String.format(">>>>%s insert:uri=%s, values=%s", TAG, uri, values); showMsg(msg); return Uri.parse("content://" + name + "/12"); } @Override public int delete(Uri uri, String selection, String[] selectionArgs) { String msg = String.format(">>>>%s delete:uri=%s, selection=%s, selectionArgs=%s", TAG, uri, selection, Arrays.toString(selectionArgs)); showMsg(msg); return 66; } @Override public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) { String msg = String.format(">>>>%s update:uri=%s, values=%s, selection=%s, selectionArgs=%s", TAG, uri, values, selection, Arrays.toString(selectionArgs)); showMsg(msg); return 77; } }