【Android】_MyContentProvider_外部访问接口
16lz
2021-01-23
一、新建MycontentProvider
权限设置:
MyContentProvider.java:
package com.example.z.student;import android.content.ContentProvider;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.net.Uri;import android.support.annotation.NonNull;import android.support.annotation.Nullable;public class MyContentProvider extends ContentProvider { @Override public boolean onCreate() { return false; } @Override public Cursor query(@NonNull Uri uri, @Nullable String[] projection, @Nullable String selection, @Nullable String[] selectionArgs, @Nullable String sortOrder) { MySQLiteAccess database=new MySQLiteAccess(this.getContext(),3); SQLiteDatabase sqLiteDatabase=database.getReadableDatabase(); String sql="select *from students "; Cursor cursor=sqLiteDatabase.rawQuery(sql,null); System.out.println("查询成功!"); return cursor; } @Nullable @Override public String getType(@NonNull Uri uri) { return null; } @Nullable @Override public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) { return null; } @Override public int delete(@NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) { return 0; } @Override public int update(@NonNull Uri uri, @Nullable ContentValues values, @Nullable String selection, @Nullable String[] selectionArgs) { return 0; }}
二、接收端:(另一个app)
java:
package com.example.cungu.myapplication4;import android.content.ContentResolver;import android.content.ContentValues;import android.database.Cursor;import android.net.Uri;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.TextView;import android.widget.Toast;import java.net.URI;public class StuActivity extends AppCompatActivity implements View.OnClickListener { private TextView texts; private Button button; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_stu); texts=(TextView)findViewById(R.id.texts); button=(Button)findViewById(R.id.button); button.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.button: search(); break; } } public void insert(){ ContentResolver resolver = getContentResolver();// 获取ContentResolver Uri uri = Uri.parse("content://provider/student"); // 插入表中数据 ContentValues values = new ContentValues(); values.put("id", "6"); values.put("name", "test"); values.put("sex", "男"); values.put("age", "20"); values.put("academy", "信息科学与工程"); values.put("major", "物联网工程"); values.put("date", "19980101"); // 通过ContentResolver 根据URI 向ContentProvider中插入数据 Uri result=resolver.insert(uri, values); String n=result.getPath(); Toast.makeText(this, n, Toast.LENGTH_SHORT).show(); Toast.makeText(this, "插入成功!", Toast.LENGTH_SHORT).show(); } public void search(){ ContentResolver resolver=getContentResolver(); Uri uri=Uri.parse("content://Student"); Cursor cursor=resolver.query(uri,null,null,null,null); if(cursor!=null) while (cursor.moveToNext()){ String id=cursor.getString(cursor.getColumnIndex("id")); String name=cursor.getString(cursor.getColumnIndex("name")); String sex=cursor.getString(cursor.getColumnIndex("sex")); String age=cursor.getString(cursor.getColumnIndex("age")); String academy=cursor.getString(cursor.getColumnIndex("academy")); String major=cursor.getString(cursor.getColumnIndex("major")); String date=cursor.getString(cursor.getColumnIndex("date")); texts.append("\n"+id+" "+name+" "+sex+" "+age+" "+academy+" "+major+" "+date+" "); } }}
三、应用效果:
student.app:
这里为select * from students
,可以加细一点,弄成关键词搜索。
更多相关文章
- Android Button的背景图片拉伸变形解决方法
- android图片转换代码
- Android在内存中读取数据
- Android 异步从网络上下载图片
- android设置背景图片透明
- Android上传下载文件(图片)
- android 列表 数据显示总结
- mono for android 读取网络远程图片
- android 将图片转换成黑白图片