上一篇文章,我們說到了自定義一個內容提供商,那麼這一次,我們從客戶端的角度來訪問服務端的數據,並且進行操作(查、增、刪、改)
//首先,自定義一個操作數據庫的工具類
<pre name="code" class="java">/**
* 客戶端
* 訪問服務端的數據庫,並且可以進行增、刪、改、查的操作
* 數據庫就在這裏...............
*/
public class MainActivity extends Activity {
private String url="content://com.mma/student/";//uri
private EditText e1,e2;//編輯框
private ContentResolver resolver;//客戶端
private ListView listview;//視圖列表
private SimpleCursorAdapter adapter;//適配器(數據庫)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
e1=(EditText) findViewById(R.id.e1);
e2=(EditText) findViewById(R.id.e2);
listview=(ListView) findViewById(R.id.listview);
resolver=getContentResolver();//創建客戶端
}
public void mm1(View view){//添加
String name=e1.getText().toString();
int age=0;
try {
String s=e2.getText().toString();
age=Integer.parseInt(s);
} catch (Exception e) {
}
ContentValues values = new ContentValues();
values.put("name", name);
values.put("age",age);
Uri uri = resolver.insert(Uri.parse(url), values);
long id=ContentUris.parseId(uri);
if(id>0){
Toast.makeText(MainActivity.this, "添加成功....", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(MainActivity.this, "添加失敗....", Toast.LENGTH_LONG).show();
}
}
public void mm2(View view){//修改
String name=e1.getText().toString();
int age=0;
try {//加一個異常判斷
String s=e2.getText().toString();
age=Integer.parseInt(s);
} catch (Exception e) {
}
ContentValues values = new ContentValues();
values.put("name", name);
values.put("age",age);
int i=resolver.update(Uri.parse(url),
values,"name=?",new String[]{name});
if(i>0){
Toast.makeText(MainActivity.this, "修改成功....", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(MainActivity.this, "修改失敗....", Toast.LENGTH_LONG).show();
}
}
public void mm3(View view){//查詢(如果數據量比較大,需要考慮把查詢數據庫放到子線程裏面去執行!)
Cursor cursor=resolver.query(Uri.parse(url),
null, null, null,null);
adapter=new SimpleCursorAdapter(MainActivity.this,//創建適配器(數據庫)
android.R.layout.simple_list_item_2,// 佈局
cursor, //數據庫的遊標
new String[]{"name","age"}, //數據庫對應的字段字符串數組
new int[]{android.R.id.text1,android.R.id.text2},//佈局裏面的控件id數組
0);
listview.setAdapter(adapter);//在界面顯示
}
public void mm4(View view){//刪除
String name=e1.getText().toString();
int i=resolver.delete(Uri.parse(url),
"name=?",
new String[]{name});
if(i>0){
Toast.makeText(MainActivity.this, "刪除成功....", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(MainActivity.this, "刪除失敗....", Toast.LENGTH_LONG).show();
}
}
這裏,主要是上的源碼,沒有什麼註釋,有時間時,我會把這些都加上,大家也可以拷貝到電腦上跑一下,可能少了一兩個括號,自己加上吧!