Android Studio 1-14
内容提供者练习
##内容提供
package com.example.myprovider;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MySQLiteHelper mySQLiteHelper = new MySQLiteHelper(this, "user.db", null, 1);
}
}
package com.example.myprovider;
import android.content.ContentProvider;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.net.Uri;
public class MyContentProvider2 extends ContentProvider {
private MySQLiteHelper mySQLiteHelper;
private SQLiteDatabase db;
@Override
public boolean onCreate() {
MySQLiteHelper mySQLiteHelper = new MySQLiteHelper(getContext(), "user.db", null, 1);
db = mySQLiteHelper.getReadableDatabase();
if (db != null){
return true;
}
return false;
}
@Override
public Cursor query( Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
Cursor user = db.query("user", projection, selection, selectionArgs, null, null, sortOrder);
return user;
}
@Override
public String getType(Uri uri) {
return null;
}
@Override
public Uri insert(Uri uri, ContentValues values) {
db.insert("user",null,values);
return uri;
}
@Override
public int delete( Uri uri, String selection, String[] selectionArgs) {
int user = db.delete("user", selection, selectionArgs);
return user;
}
@Override
public int update( Uri uri, ContentValues values, String selection, String[] selectionArgs) {
return db.update("user",values,selection,selectionArgs);
}
}
package com.example.myprovider;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class MySQLiteHelper extends SQLiteOpenHelper {
public MySQLiteHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
sqLiteDatabase.execSQL("create table user (_id integer primary key autoincrement ,name varcher(20),age integer)");
for (int i = 0; i < 5; i++) {
sqLiteDatabase.execSQL("insert into user values (null,?,?)",new Object[]{"朔風"+i,i});
}
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
}
}
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
tools:context=".MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="内容提供"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
##使用者
<?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:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">
<Button
android:id="@+id/add"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="增" />
<Button
android:id="@+id/delete"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="删" />
<Button
android:id="@+id/update"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="改" />
<Button
android:id="@+id/query"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="查" />
</LinearLayout>
package com.example.ri10;
import androidx.appcompat.app.AppCompatActivity;
import android.content.ContentResolver;
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.Toast;
public class MainActivity extends AppCompatActivity {
private Button add;
private Button delete;
private Button update;
private Button query;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
add = (Button) findViewById(R.id.add);
delete = (Button) findViewById(R.id.delete);
update = (Button) findViewById(R.id.update);
query = (Button) findViewById(R.id.query);
final Uri uri = Uri.parse("content://com.bawei.jinsiyu");
final ContentResolver contentResolver = getContentResolver();
query.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Cursor query = contentResolver.query(uri, null, null, null, null);
if (query != null) {
while (query.moveToNext()) {
String name = query.getString(query.getColumnIndex("name"));
String id = query.getString(query.getColumnIndex("_id"));
String age = query.getString(query.getColumnIndex("age"));
Toast.makeText(MainActivity.this, ""+id + name + age, Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(MainActivity.this, "数据为空", Toast.LENGTH_SHORT).show();
}
}
});
update.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ContentValues contentValues = new ContentValues();
contentValues.put("name","孔明");
int update = contentResolver.update(uri, contentValues, "_id = ?", new String[]{"5"});
if (update != 0){
Toast.makeText(MainActivity.this, "修改"+update+"条数据", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(MainActivity.this, "修改失败", Toast.LENGTH_SHORT).show();
}
}
});
delete.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int delete = contentResolver.delete(uri, "_id = ?", new String[]{"2"});
if (delete > 0){
Toast.makeText(MainActivity.this, "删除了"+delete+"条数据", Toast.LENGTH_SHORT).show();
}else {
Toast.makeText(MainActivity.this, "没有数据", Toast.LENGTH_SHORT).show();
}
}
});
add.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ContentValues contentValues = new ContentValues();
contentValues.put("name","诸葛亮");
contentValues.put("age",21);
contentResolver.insert(uri,contentValues);
Toast.makeText(MainActivity.this, "增加数据", Toast.LENGTH_SHORT).show();
}
});
}
}