연락처 공급자를 쿼리하고 연락처 정보를 가져 오려고하는데, 지금까지이 정보를 나열하는 데 성공했지만, 검색하는 데 더 많은 관심이 있습니다. 생년월일이 지정된 연락처의 정보. 내가 where 절을 설계 할연락처 데이터베이스에 생일이있는 연락처 (안드로이드)
public class LoaderClass extends Activity implements LoaderCallbacks<Cursor>{
// private ProgressDialog pDialog;
// Async as;
TextView t1, t2;
Locale current;
Uri uri;
String[] projection;
String where;
public static final int progress_bar_type = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.loader_class);
t1 = (TextView) findViewById(R.id.textView1);
t2 = (TextView) findViewById(R.id.textView2);
t1.setText("");
current = getResources().getConfiguration().locale;
// new Async().execute();
uri = ContactsContract.Data.CONTENT_URI;
projection = new String[] {
// take from the contacts
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.CommonDataKinds.Event.CONTACT_ID,
ContactsContract.CommonDataKinds.Event.START_DATE,
ContactsContract.CommonDataKinds.Phone.NUMBER,
ContactsContract.CommonDataKinds.StructuredPostal.FORMATTED_ADDRESS,
ContactsContract.CommonDataKinds.Photo.PHOTO
};
where = ContactsContract.Data.MIMETYPE + "= ? AND "
+ ContactsContract.CommonDataKinds.Event.TYPE + "="
+ ContactsContract.CommonDataKinds.Event.TYPE_BIRTHDAY;
String[] selectionArgs = new String[] { ContactsContract.CommonDataKinds.Event.CONTENT_ITEM_TYPE };
getLoaderManager().initLoader(0, null, this);
}
@Override
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
CursorLoader loader = new CursorLoader(
this,
uri,
projection,
null,
null,
null);
return loader;
}
@Override
public void onLoadFinished(
Loader<Cursor> loader,
Cursor cursor) {
while (cursor.moveToNext()) {
String displayBirthday = cursor
.getString(cursor
.getColumnIndex(ContactsContract.CommonDataKinds.Event.START_DATE));
String name = cursor.getString(cursor
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
String ename = cursor.getString(cursor
.getColumnIndex(ContactsContract.CommonDataKinds.Email.ADDRESS));
t1.append("\n"+displayBirthday+"\n"+name+"\n"+ename);
}
}
@Override
public void onLoaderReset(Loader<Cursor> arg0) {
// TODO Auto-generated method stub
}
}
,하지만 난 어떤 도움은 매우 극명하게 될 것이다 어떻게 이해 할 수없는입니다 : 지금까지 다음과 같이 내 코드 보인다.
내가 그나마 없음이 찾아 다음 목록에 저장하려면, 그것은 것 두 번 노력하면 내 처리 속도가 느려지 며 where 절을 사용하는 쿼리는 나를 대신 처리 할 것입니다. – Skynet