ContentProvider
ContentProvider
MyContentProvider
public class MyContentProvider extends ContentProvider {
private MySqlHelp help;
private SQLiteDatabase database;
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
return database.delete("students",selection,selectionArgs);
}
@Override
public String getType(Uri uri) {
return null;
}
@Override
public Uri insert(Uri uri, ContentValues values) {
database.insert("students",null,values);
return uri;
}
@Override
public boolean onCreate() {
help = new MySqlHelp(getContext());
database = help.getReadableDatabase();
if(database==null){
return false;
}else {
return true;
}
}
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
return database.query("students",projection,selection,selectionArgs,null,null,sortOrder);
}
@Override
public int update(Uri uri, ContentValues values, String selection,
String[] selectionArgs) {
return database.update("students",values,selection,selectionArgs);
}
}
接收
public class MainActivity extends AppCompatActivity {
private ContentResolver context;
private Uri uri;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
context = getContentResolver();
uri = Uri.parse("content://com.day09.aaa");
context=getContentResolver();
}
private void query() {
Cursor query = context.query(uri, null,null, null, null);
while(query.moveToNext()){
String name = query.getString(query.getColumnIndex("name"));
int id = query.getInt(query.getColumnIndex("id"));
Toast.makeText(this,id+":"+name, Toast.LENGTH_SHORT).show();
}
}
public void click(View view) {
switch (view.getId()){
case R.id.query:
query();
break;
case R.id.insert:
insert();
break;
case R.id.delete:
int raw=context.delete(uri,"name=?",new String[]{"张雨东"});
break;
}
}
private void insert() {
ContentValues contentValues=new ContentValues();
contentValues.put("name","hahaha");
contentValues.put("age",18);
context.insert(uri,contentValues);
}
}
电话
MyAdapter
public class MyAdapter extends BaseAdapter {
private Context context;
private LayoutInflater inflater;
private List<Phone> lists;
public MyAdapter(Context context, List<Phone> lists) {
this.context = context;
this.lists = lists;
inflater=LayoutInflater.from(context);
}
@Override
public int getCount() {
return lists.size();
}
@Override
public Object getItem(int position) {
return lists.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null){
holder=new ViewHolder();
convertView=inflater.inflate(R.layout.item,null);
holder.name=convertView.findViewById(R.id.name);
holder.number=convertView.findViewById(R.id.number);
convertView.setTag(holder);
}else {
holder= (ViewHolder) convertView.getTag();
}
holder.name.setText(lists.get(position).getName());
holder.number.setText(lists.get(position).getNumber());
return convertView;
}
class ViewHolder{
private TextView name;
private TextView number;
}
}
main
public class MainActivity extends AppCompatActivity {
private Button btn1;
private List<Phone> lists=new ArrayList<>();
private ListView lv;
private MyAdapter adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = findViewById(R.id.btn1);
lv =findViewById(R.id.lv);
adapter=new MyAdapter(this,lists);
lv.setAdapter(adapter);
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.M){
requestPermissions(new String[]{Manifest.permission.WRITE_CONTACTS,Manifest.permission.READ_CONTACTS},100);
}
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
adapter.notifyDataSetChanged();
}
});
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
if(requestCode==100&grantResults[0]== PackageManager.PERMISSION_GRANTED){
resolverMethod();
}
}
private void resolverMethod() {
ContentResolver contentResolver = getContentResolver();
Uri uri = ContactsContract.CommonDataKinds.Phone.CONTENT_URI;
String[] strings={ContactsContract.CommonDataKinds.Phone.NUMBER,ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME};
Cursor query = contentResolver.query(uri, strings, null, null, null, null);
while(query.moveToNext()){
String name = query.getString(query.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String number = query.getString(query.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Phone phone = new Phone(name, number);
lists.add(phone);
}
}
}