第一个项目
1.布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<EditText
android:id="@+id/et_ma_id"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="ID" />
<EditText
android:id="@+id/et_ma_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Name" />
<EditText
android:id="@+id/et_ma_age"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="age" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="保存"
android:onClick="save"/>
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_ma_list"></ListView>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal">
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/tv_item_list_id"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/tv_item_list_name"/>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:id="@+id/tv_item_list_age"/>
</LinearLayout>
2.MainActivity.java
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et_ma_id = (EditText) findViewById(R.id.et_ma_id);
et_ma_age = (EditText) findViewById(R.id.et_ma_age);
et_ma_name = (EditText) findViewById(R.id.et_ma_name);
et_ma_list = (ListView) findViewById(R.id.et_ma_list);
DbHelper dbHelper = new DbHelper(this, "G150831.db", null, 2);
database = dbHelper.getReadableDatabase();
//查询数据
//第一个参数代表是否去重复值,第二个参数是表名,第三个是列名,第四个是查询条件,
//第五个是条件的值,第六个是分组,第七个是分组的值,第八个是排序,第九个分页
Cursor cursor=database.query(false,"person",null,null,null,null,null,null,"10,2");
simpleCursorAdapter = new SimpleCursorAdapter(this, R.layout.item_list,cursor,new String[]{"_id","name","age"},new int[]{R.id.tv_item_list_id,R.id.tv_item_list_name,R.id.tv_item_list_age});
et_ma_list.setAdapter(simpleCursorAdapter);
}
public void save(View view) {
// String id = et_ma_id.getText().toString();
String age = et_ma_age.getText().toString();
String name = et_ma_name.getText().toString();
//存到数据库
ContentValues values = new ContentValues();
values.put("name", name);
values.put("age",age);
database.insert("person","name",values);
for (int i = 0; i < 100; i++) {
database.execSQL("insert into person values(null,?,?)", new String[]{name+i, age});
}
}
}
3.db类
public class DbHelper extends SQLiteOpenHelper {
/**
*
* @param context 上下文
* @param name 名字(数据库的名字)
* @param factory 游标工厂,多数情况为null
* @param version 数据库版本
*/
public DbHelper(Context context, String name, SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
//操作:创建表的操作
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table person(_id integer primary key autoincrement,name,age)");
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
4.内容提供者
public class MyProvider extends ContentProvider {
private SQLiteDatabase sqLiteDatabase;
@Override
public boolean onCreate() {
DbHelper dbHelper=new DbHelper(getContext(),"G150831.db",null,2);
sqLiteDatabase = dbHelper.getReadableDatabase();
return false;
}
@Nullable
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs, String sortOrder) {
//查询所有数据
return sqLiteDatabase.query(true,"person",projection,selection,selectionArgs,null,null,sortOrder,null);
}
@Nullable
@Override
public String getType(Uri uri) {
return null;
}
@Nullable
@Override
public Uri insert(Uri uri, ContentValues values) {
return null;
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
return 0;
}
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
return 0;
}
}
6.在清单文件application下配置
<!--配置内容提供者-->
<provider
android:authorities="com.zking.g150831_android16.person"
android:name="com.zking.provider.MyProvider"
android:exported="true">
</provider>
第二个项目
1.布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.zking.g150831_android24.MainActivity">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="获取数据"
android:onClick="getData"/>
</LinearLayout>
2.MainActivity.java
public class MainActivity extends AppCompatActivity {
private ContentResolver cr;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//获取内容访问者
cr = getContentResolver();
}
public void getData(View view) {
Uri uri = Uri.parse("content://com.zking.g150831_android16.person");
Log.i("哈哈","query");
Cursor cursor = cr.query(uri, null, null, null, null);
while (cursor.moveToNext()) {
int id = cursor.getInt(cursor.getColumnIndex("_id"));
String name = cursor.getString(cursor.getColumnIndex("name"));
int age = cursor.getInt(cursor.getColumnIndex("age"));
Log.i("哈哈", id + " " + name + " " + age);
}
}
}