contentprovider_provider与contentprovider_resolver连接
来源:互联网 发布:fifaol3数据库手机版 编辑:程序博客网 时间:2024/06/05 16:00
contentprovider_provider的MainActivity什么也不写
import android.support.v7.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }}
MyContentProvider
import android.content.ContentProvider;import android.content.ContentUris;import android.content.ContentValues;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;import android.net.Uri;import android.support.annotation.Nullable;/** * @author alice * @version 1.0 * @Date 2017/10/18 11:19 */public class MyContentProvider extends ContentProvider { String path = "content://alice.bw.com.contentprovider_provider/student"; SQLiteDatabase db; @Override public boolean onCreate() { MySQliteopenHelper openher = new MySQliteopenHelper(getContext()); db = openher.getReadableDatabase(); return false; } @Nullable @Override public Cursor query(Uri uri, String[] strings, String s, String[] strings1, String s1) { Cursor c = db.query("student",strings,s,strings1,null,null,s1); return c; } @Nullable @Override public String getType(Uri uri) { return null; } @Nullable @Override public Uri insert(Uri uri, ContentValues contentValues) { long insert = db.insert("student", null, contentValues); Uri u = ContentUris.withAppendedId(Uri.parse(path),insert); return u; } @Override public int delete(Uri uri, String s, String[] strings) { return 0; } @Override public int update(Uri uri, ContentValues contentValues, String s, String[] strings) { return 0; }}
MySQliteopenHelper
import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;/** * @author alice * @version 1.0 * @Date 2017/10/18 11:12 */public class MySQliteopenHelper extends SQLiteOpenHelper { public MySQliteopenHelper(Context context) { super(context, "student", null, 1); } @Override public void onCreate(SQLiteDatabase sqLiteDatabase) { sqLiteDatabase.execSQL("create table student(_id integer primary key autoincrement,name text,age text)"); } @Override public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) { }}
activity_main的布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="alice.bw.com.contentprovider_provider.MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!"/></RelativeLayout>
contentprovider_resolver的MainActivity
import android.content.ContentResolver;import android.content.ContentValues;import android.content.DialogInterface;import android.database.Cursor;import android.net.Uri;import android.os.Bundle;import android.support.v7.app.AlertDialog;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;import java.util.ArrayList;public class MainActivity extends AppCompatActivity implements View.OnClickListener { private String path = "content://alice.bw.com.day16customcontentprovider/student"; private Button query_bt; private Button insert_bt; private Button delete_bt; private ListView listView; private ContentResolver mResolver; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mResolver = getContentResolver(); initView(); } private void initView() { query_bt = (Button) findViewById(R.id.query_bt); insert_bt = (Button) findViewById(R.id.insert_bt); delete_bt = (Button) findViewById(R.id.delete_bt); listView = (ListView) findViewById(R.id.listView); query_bt.setOnClickListener(this); insert_bt.setOnClickListener(this); delete_bt.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.query_bt: queryStudent(); break; case R.id.insert_bt: insertStudent(); break; case R.id.delete_bt: break; } } private void insertStudent() { View dialogView = View.inflate(this, R.layout.dialog_layout, null); final EditText name_et = (EditText) dialogView.findViewById(R.id.name_et); final EditText age_et = (EditText) dialogView.findViewById(R.id.age_et); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setIcon(R.mipmap.ic_launcher).setTitle("警告").setMessage("插入一个学生").setView(dialogView) .setPositiveButton("确认", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { String name = name_et.getText().toString(); String age = age_et.getText().toString(); ContentValues values = new ContentValues(); values.put("name", name); values.put("age", age); mResolver.insert(Uri.parse(path), values); } }); builder.show(); } // 查询 private void queryStudent() { Cursor c = mResolver.query(Uri.parse(path), null, null, null, null); ArrayList<Student> list = new ArrayList<Student>(); if (c != null) { while (c.moveToNext()) { String name = c.getString(c.getColumnIndex("name")); String age = c.getString(c.getColumnIndex("age")); Student stu = new Student(name,age); list.add(stu); } } listView.setAdapter(new StudentAdapter(this, list)); }}
Student
public class Student { private String name; private String age; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public Student() { } public Student(String name, String age) { this.name = name; this.age = age; }}
StudentAdapter
import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import java.util.ArrayList;/** * @author alice * @version 1.0 * @Date 2017/10/18 11:50 */public class StudentAdapter extends BaseAdapter { private Context mContext; private ArrayList<Student> mList; private LayoutInflater mInflater; public StudentAdapter(Context context, ArrayList<Student> list) { mContext = context; mList = list; mInflater = LayoutInflater.from(mContext); } @Override public int getCount() { if(mList!=null){ return mList.size(); } return 0; } @Override public Student getItem(int i) { if(mList!=null){ return mList.get(i); } return null; } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder vh = null; if(view == null){ vh = new ViewHolder(); view = mInflater.inflate(R.layout.item_layout,null); vh.name_tv = (TextView) view.findViewById(R.id.name_tv); vh.age_tv = (TextView) view.findViewById(R.id.age_tv); view.setTag(vh); }else { vh = (ViewHolder) view.getTag(); } Student student = getItem(i); vh.name_tv.setText(student.getName()); vh.age_tv.setText(student.getAge()); return view; } class ViewHolder{ TextView name_tv,age_tv; }}
StudentAdapter
import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView;import java.util.ArrayList;/** * @author alice * @version 1.0 * @Date 2017/10/18 11:50 */public class StudentAdapter extends BaseAdapter { private Context mContext; private ArrayList<Student> mList; private LayoutInflater mInflater; public StudentAdapter(Context context, ArrayList<Student> list) { mContext = context; mList = list; mInflater = LayoutInflater.from(mContext); } @Override public int getCount() { if(mList!=null){ return mList.size(); } return 0; } @Override public Student getItem(int i) { if(mList!=null){ return mList.get(i); } return null; } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHolder vh = null; if(view == null){ vh = new ViewHolder(); view = mInflater.inflate(R.layout.item_layout,null); vh.name_tv = (TextView) view.findViewById(R.id.name_tv); vh.age_tv = (TextView) view.findViewById(R.id.age_tv); view.setTag(vh); }else { vh = (ViewHolder) view.getTag(); } Student student = getItem(i); vh.name_tv.setText(student.getName()); vh.age_tv.setText(student.getAge()); return view; } class ViewHolder{ TextView name_tv,age_tv; }}
activity_main布局
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="alice.bw.com.contentprovider_resolver.MainActivity"> <Button android:id="@+id/query_bt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="onClick" android:text="查询" > </Button> <Button android:id="@+id/insert_bt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/query_bt" android:onClick="onClick" android:text="插入" > </Button> <Button android:id="@+id/delete_bt" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@id/insert_bt" android:onClick="onClick" android:text="删除" > </Button> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/insert_bt" > </ListView></RelativeLayout>
dialog_layout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <EditText android:id="@+id/name_et" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入名字" > </EditText> <EditText android:id="@+id/age_et" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="请输入年龄" /></LinearLayout>
item_layout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <TextView android:id="@+id/name_tv" android:layout_width="wrap_content" android:textSize="18sp" android:layout_margin="5dp" android:layout_height="wrap_content" android:text="TextView" /> <TextView android:id="@+id/age_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_margin="5dp" android:text="TextView" android:textSize="18sp" /></LinearLayout>
阅读全文
0 0
- contentprovider_provider与contentprovider_resolver连接
- contentprovider_provider与contentprovider_resolver连接
- contentprovider_provider
- 连接与连接管理
- ${}与${}连接
- 左连接与右连接
- 内连接与外连接
- 左连接与右连接
- 长连接与短连接
- 左连接与右连接(+)
- 外连接与内连接
- 等值连接与自然连接
- 长连接与短连接
- 软连接与硬连接
- 长连接与短连接
- 长连接与短连接
- 长连接与短连接
- 长连接与短连接
- 第二次自考之考后总结概括
- angularJS实现增删改查等
- usaco Number Triangles
- Swift元组类型转字符串类型
- Lucas定理模板【bzoj2982】【combination】
- contentprovider_provider与contentprovider_resolver连接
- i2c的基础概念和框架
- 7.6 控制缓存的能力
- uva10596
- SCOI-2010-连续攻击游戏
- Javascript进制之间的转换。
- android Activity生命周期
- Atom 更为先进的文本代码编辑器
- symbol-versioning