編輯:關於Android編程
如果ContentProvider的訪問者需要知道ContentProvider中的數據的變化情況,可以在ContentProvider發生數據變化時調用getContentResolver().notifyChange(uri,null)來通知注冊在此URI上的訪問者。
復制代碼 代碼如下:
public class PersonContentProvider extends ContentProvider[
public Uri insert(Uri uri,ContentValues values){
db.insert("person","personid",values);
getContext().getContentResolver().notifyChange(uri,null);
}//通知注冊在此URI上的訪問者,此外注冊在insert方法上}
如果ContentProvider的訪問者需要得到數據變化通知,必須使用ContentObserver對數據(數據使用URI描述)進行監聽,當監聽到數據變化通知時,系統就會調用ContentObserver的onChange()方法。
復制代碼 代碼如下:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Uri uri = Uri.parse("content://cn.wordtech.providers.personprovider/person");
this.getContentResolver().registerContentObserver(uri, true, new PersonContentdObserver(new Handler()));
// 第三個對象為監聽對象,當數據發生改變的時候通知此對象做相應的改變
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
private class PersonContentdObserver extends ContentObserver {
public PersonContentdObserver(Handler handler) {
super(handler);
}
@Override
public void onChange(boolean selfChange) {
Uri uri = Uri.parse("content://cn.wordtech.providers.personprovider/person");
Cursor cursor = getContentResolver().query(uri, null, null, null,"personid desc limit 1");
while (cursor.moveToNext()) {
String name = cursor.getString(cursor.getColumnIndex("name"));
Log.i("Name", name);
}
super.onChange(selfChange);
} }
}
測試應用:
復制代碼 代碼如下:
Button btn = (Button) findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Uri uri = Uri.parse("content://cn.wordtech.providers.personprovider/person");// 根據標識名得到內容提供者
ContentResolver cr = MainActivity.this.getContentResolver();
ContentValues values = new ContentValues();
values.put("name", "Livingstone");
values.put("phone", "1101");
values.put("amount", "1111111111");
cr.insert(uri, values);
}
});
1.1 Gradle Build Files in Android1 settings.gradle位於根目錄,它指明了那些包含在多項目構建中的子項目(Android支持
很多的Android入門程序猿來說對於Android自定義View,可能都是比較恐懼的,但是這又是高手進階的必經之路,所有准備在自定義View上面花一些功夫,多寫一些文章
Android當道,現在學習Android開發還晚嗎?寫下這個問題的時間是–2014年6月15號,我會回答:不晚,Android至少還能在活躍10年!所以答應自己從今天開
先來看看效果圖如何使用示例代碼PromptViewHelper pvHelper = new PromptViewHelper(mActivity);pvHelper.s