android

2014-09-16

5DMK2]발자국 2014. 9. 16. 09:56


A: content (필수로 있어야 함)

B: DB              select * from trains where _id=122

C: 옵션

D: ID(_id)

android 


onCreate() - 최초 1회만 실행됨


MATCHER.addURI("org.kandroid.sample.Provider", "namecard", NAMECARDS);

검색할 때 

MATCHER.addURI("org.kandroid.sample.Provider", "namecard/#", NAMECARD_ID);

/# 모든 ID값선택



MyProvider Manifest

<provider android:name=".MyProvider"

android:multiprocess="false"

android:grantUriPermissions="true"

android:readPermission="kandroid.permission.READ_PROVIDER"

android:writePermission="kandroid.permission.WRITE_PROVIDER"

android:authorities="org.kandroid.sample.Provider" >-> URI이름지정

</provider>



MyResolver2.java


Cursor my_cursor = getContentResolver().query(CONTENT_URI,

PROJECTION, null, null, null); 

Resolver를 통해서 쿼리 진행




MyProvider.java

public Cursor query(Uri url, String[] projection, String selection,

String[] selectionArgs, String sort) {

SQLiteQueryBuilder qb=new SQLiteQueryBuilder();

qb.setTables(getTableName());

if (isCollectionUri(url)) {

qb.setProjectionMap(getDefaultProjection());

}

else {

qb.appendWhere(getIdColumnName()+"="+url.getPathSegments().get(1));

}

String orderBy;

if (TextUtils.isEmpty(sort)) {

orderBy=getDefaultSortOrder();

} else {

orderBy=sort;

}

// ↑유효성 검사

Cursor c=qb.query(db, projection, selection, selectionArgs,

null, null, orderBy);

c.setNotificationUri(getContext().getContentResolver(), url); <-빼도 동작은 하나 오류가 날 확률이 높음

return c;

}


MyResolver2.java

Cursor my_cursor = getContentResolver().query(CONTENT_URI,

PROJECTION, null, null, null);


ListAdapter adapter=

new SimpleCursorAdapter(this,

R.layout.row, my_cursor,

new String[] {"title","value"},       

new int[] {R.id.title, R.id.value});   윗줄과 개수 동일하게  

setListAdapter(adapter);

registerForContextMenu(getListView());


}




MyProVider 

내부 클래스 DatabaseHelper 생성

query()

delete()

onCreate()

Manifest.xml <- provider 태그만 추가


MyResolver

onCreate();

OnCreateContextMenu()

onContextItemSelected()

delete()

processDelete()