MainActivity.java
package com.example.ch08testproviderdemo;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ContentResolver;
import android.content.ContentUris;
import android.content.ContentValues;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private TextView tvStars;
private TextView tvAfter;
private Button btnShowAfter;
private ContentResolver resolver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvStars = findViewById(R.id.tv_stars);
tvAfter = findViewById(R.id.tv_after);
btnShowAfter = findViewById(R.id.btn_after_delete);
btnShowAfter.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Uri uri = Uri.parse(
"content://net.onest.lww.provider/stars");
showData(uri, tvAfter);
}
});
//插入1条数据
insertData();
//查询数据
Uri uri = Uri.parse(
"content://net.onest.lww.provider/stars");
showData(uri, tvStars);
//删除数据
deleteData();
}
private void insertData() {
//创建ContentResolver对象
resolver = getContentResolver();
//得到操作CP的Uri
Uri uri = Uri.parse(
"content://net.onest.lww.provider/stars");
//封装待插入的数据
ContentValues cv = new ContentValues();
cv.put("name", "Jack");
cv.put("hobby", "swim");
//插入1条数据
Uri resultUri = resolver.insert(uri, cv);
//解析插入结果的id
long rowId = ContentUris.parseId(resultUri);
if (rowId > 0) {
Toast.makeText(this,
"插入成功:" + rowId,
Toast.LENGTH_SHORT).show();
}
}
private void deleteData() {
//删除
Uri uriSingle = Uri.parse(
"content://net.onest.lww.provider/star/4");
int n = resolver.delete(
uriSingle, null, null);
if (n > 0) {
//删除成功
Toast.makeText(this,
"删除成功" + n + "条记录",
Toast.LENGTH_SHORT).show();
}
}
private void showData(Uri uri, TextView tv) {
//查询数据
Cursor result = resolver.query(uri, null, null, null, null, null);
StringBuffer buffer = new StringBuffer();
//遍历结果
while (result.moveToNext()) {
int id = result.getInt(result.getColumnIndex("id"));
String name = result.getString(
result.getColumnIndex("name"));
String hobby = result.getString(
result.getColumnIndex("hobby"));
buffer.append(id + ":" + name + ", " + hobby + "\n");
}
//将结果显示在文本框
tv.setText(buffer.toString());
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv_stars"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
<Button
android:id="@+id/btn_after_delete"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="删除后的结果"/>
<TextView
android:id="@+id/tv_after"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>