Android Studio 1-14

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();
            }
        });

    }
}

发布了20 篇原创文章 · 获赞 4 · 访问量 902

猜你喜欢

转载自blog.csdn.net/v1141261428/article/details/99709958