ContentProvider內容提供商的簡單使用(下)

上一篇文章,我們說到了自定義一個內容提供商,那麼這一次,我們從客戶端的角度來訪問服務端的數據,並且進行操作(查、增、刪、改)


//首先,自定義一個操作數據庫的工具類

<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();
		}
	}
	




這裏,主要是上的源碼,沒有什麼註釋,有時間時,我會把這些都加上,大家也可以拷貝到電腦上跑一下,可能少了一兩個括號,自己加上吧!



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章