사용자 지정 SimpleCursorAdapter 만들기. 필요한 열을 데이터베이스에 쿼리 할만큼 똑똑하다고 생각합니다. cusror가 준비되면 사용자 지정 어댑터로 전달하십시오.
다음 스 니펫이 도움이 될 것입니다.
cursor = managedQuery(ContactsContract.Contacts.CONTENT_URI, null,
null, null, null);
contactList.setAdapter(new MyCursorAdapter(this, R.layout.row, cursor,
new String[] { ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.LAST_TIME_CONTACTED },
new int[] { R.id.name, R.id.email }));
사진에 대한 URL이 더 이상 작동하지 않습니다
public class MyCursorAdapter extends SimpleCursorAdapter {
private Cursor cursor;
private int layout;
private Context context;
public MyCursorAdapter(Context context, int layout, Cursor cursor,
String[] from, int[] to) {
super(context, layout, cursor, from, to);
this.context = context;
this.cursor = cursor;
this.layout = layout;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
cursor.moveToPosition(position); <---- This is very important.
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(layout, null);
TextView txtName = (TextView) view.findViewById(R.id.name);
TextView txtEmail = (TextView) view.findViewById(R.id.email);
int nameColumnIndex = cursor
.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);
int frequencyColumnIndex = cursor
.getColumnIndex(ContactsContract.Contacts.TIMES_CONTACTED);
txtName.setText(cursor.getString(nameColumnIndex));
txtEmail.setText(cursor.getString(frequencyColumnIndex));
return view;
}
}
MyCursorAdapter.java –