600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > Android ContentProvider(内容提供者)+database

Android ContentProvider(内容提供者)+database

时间:2024-05-17 22:09:33

相关推荐

Android ContentProvider(内容提供者)+database

主类:

package com.example.contentprovider_database;import android.content.ContentValues;import android.content.Context;import android.database.Cursor;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.Button;import android.widget.CursorAdapter;import android.widget.ListView;import android.widget.TextView;public class MainActivity extends AppCompatActivity {private Button insert, update, delete, select;private ListView listview;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);insert = findViewById(R.id.insert);update = findViewById(R.id.update);delete = findViewById(R.id.delete);select = findViewById(R.id.select);listview = findViewById(R.id.listview);insert.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {ContentValues values = new ContentValues();values.put("name", "李晓娜");getContentResolver().insert(MyContentProvider.duogeuri, values);}});update.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {ContentValues values = new ContentValues();values.put("name", "李孟媛");getContentResolver().update(MyContentProvider.duogeuri, values, "name = ?", new String[]{"李晓娜"});}});delete.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {getContentResolver().delete(MyContentProvider.duogeuri, "name = ?", new String[]{"李晓娜"});}});select.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {Cursor cursor = getContentResolver().query(MyContentProvider.duogeuri, null, null, null, null);listview.setAdapter(new MyAdapter(MainActivity.this, cursor));}});}class MyAdapter extends CursorAdapter {public MyAdapter(Context context, Cursor c) {super(context, c);}@Overridepublic View newView(Context context, Cursor cursor, ViewGroup parent) {View view = LayoutInflater.from(context).inflate(R.layout.shipei, null);return view;}@Overridepublic void bindView(View view, Context context, Cursor cursor) {TextView viewById = view.findViewById(R.id.text_id);TextView viewByname = view.findViewById(R.id.text_name);String id = cursor.getString(cursor.getColumnIndex("_id"));String name = cursor.getString(cursor.getColumnIndex("name"));viewById.setText(id);viewByname.setText(name);}}}

MyHelp:

package com.example.contentprovider_database;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;public class MyHelp extends SQLiteOpenHelper {public MyHelp(Context context) {super(context, "lixiaona.db", null, 1);}@Overridepublic void onCreate(SQLiteDatabase db) {db.execSQL("create table user (_id Integer primary key autoincrement , name varchar(20))");}@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}}

MyContentPrivider:

package com.example.contentprovider_database;import android.content.ContentProvider;import android.content.ContentValues;import android.content.UriMatcher;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import .Uri;import android.renderscript.Sampler;import android.support.v4.view.ViewPager;import android.widget.Toast;public class MyContentProvider extends ContentProvider {static String authorities = "com.example.contentprovider_database.MyContentProvider";static String pathall = "vnd.cursor.android.dir/.MyProvider";//所有的路径static String pathitem = "vnd.cursor.android.item/.MyProvider";//单个的路径static int code = 1;static Uri duogeuri = Uri.parse("content://" + authorities + "/user");//所有uristatic Uri yitiaouri = Uri.parse("content://" + authorities + "/user/#");//单个uriprivate MyHelp myHelp;static {UriMatcher uriMatcher = new UriMatcher(UriMatcher.NO_MATCH);uriMatcher.addURI(authorities, pathall, code);uriMatcher.addURI(authorities, pathitem, code);}public MyContentProvider() {}@Overridepublic boolean onCreate() {myHelp = new MyHelp(getContext());return true;}//增加@Overridepublic Uri insert(Uri uri, ContentValues values) {Uri uri1 = null;SQLiteDatabase writableDatabase = myHelp.getWritableDatabase();long la = writableDatabase.insert("user", null, values);if (la > 0) {Toast.makeText(getContext(), "添加成功", Toast.LENGTH_SHORT).show();uri1 = uri.withAppendedPath(uri, la + "");}return uri;}@Overridepublic int delete(Uri uri, String selection, String[] selectionArgs) {SQLiteDatabase writableDatabase = myHelp.getWritableDatabase();int i = writableDatabase.delete("user", selection, selectionArgs);return i;}@Overridepublic int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {SQLiteDatabase writableDatabase = myHelp.getWritableDatabase();int i = writableDatabase.update("user", values, selection, selectionArgs);return i;}@Overridepublic Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {SQLiteDatabase readableDatabase = myHelp.getReadableDatabase();Cursor cursor = readableDatabase.rawQuery("select * from user ", null);return cursor;}@Overridepublic String getType(Uri uri) {return null;}}

主布局:

<?xml version="1.0" encoding="utf-8"?><LinearLayoutandroid:orientation="vertical"xmlns:android="/apk/res/android"xmlns:app="/apk/res-auto"xmlns:tools="/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity"><Buttonandroid:id="@+id/insert"android:text="增加"android:layout_width="match_parent"android:layout_height="wrap_content" /><Buttonandroid:id="@+id/update"android:text="修改"android:layout_width="match_parent"android:layout_height="wrap_content" /><Buttonandroid:id="@+id/delete"android:text="删除"android:layout_width="match_parent"android:layout_height="wrap_content" /><Buttonandroid:id="@+id/select"android:text="查看"android:layout_width="match_parent"android:layout_height="wrap_content" /><ListViewandroid:id="@+id/listview"android:layout_width="match_parent"android:layout_height="wrap_content"></ListView></LinearLayout>

适配xml:

<?xml version="1.0" encoding="utf-8"?><LinearLayoutandroid:orientation="horizontal"xmlns:android="/apk/res/android" android:layout_width="match_parent"android:layout_height="match_parent"><TextViewandroid:id="@+id/text_id"android:layout_width="wrap_content"android:layout_height="wrap_content" /><TextViewandroid:id="@+id/text_name"android:layout_width="wrap_content"android:layout_height="wrap_content" /></LinearLayout>

重点:

<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="/apk/res/android"package="com.example.contentprovider_database"><applicationandroid:allowBackup="true"android:icon="@mipmap/ic_launcher"android:label="@string/app_name"android:roundIcon="@mipmap/ic_launcher_round"android:supportsRtl="true"android:theme="@style/AppTheme"><activity android:name=".MainActivity"><intent-filter><action android:name="android.intent.action.MAIN" /><category android:name="android.intent.category.LAUNCHER" /></intent-filter></activity><providerandroid:name=".MyContentProvider"android:authorities="com.example.contentprovider_database.MyContentProvider"android:enabled="true"android:exported="true"></provider></application></manifest>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。