0
커스텀리스트 뷰를 구축하여 커스텀리스트 뷰를 구축하여 커스텀리스트 뷰를 구축하여 컨택 커서에서 전화 번호 및 연락처 이름뿐만 아니라 이미지의 위치에 대한 두 개의 텍스트 뷰 목록을 나열합니다. 내 TextView에 대한 setText하려고 할 때 널 포인트 오류가 나타납니다. 비록 변수를 검사하여 문자열이 들어 있는지 확인할 수는 없지만 아이디어가 없습니다. 난 당신이 newview와의 Bindview 방법커스텀 ListView 적용하기 CursorAdapter
public class RowAdapter extends CursorAdapter {
private final LayoutInflater mInflater;
public RowAdapter(Context context, Cursor c) {
super(context, c);
mInflater = LayoutInflater.from(context);
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
ViewCache viewCache = null;
View rowView = view;
viewCache = (ViewCache) rowView.getTag();
ImageView imageView = (ImageView) view.findViewById(R.id.ContactIcon);
int id = cursor.getColumnIndex(HelpiDB.KEY_ID);
int namecolumn = cursor.getColumnIndex(HelpiDB.KEY_NAME);
int numbercolumn = cursor.getColumnIndex(HelpiDB.KEY_NUMBER);
Uri uri = ContentUris.withAppendedId(People.CONTENT_URI, cursor.getLong(id));
Bitmap bitmap = People.loadContactPhoto(context, uri, R.drawable.icon, null);
String name = cursor.getString(namecolumn);
String number = cursor.getString(numbercolumn);
imageView.setImageBitmap(bitmap);
TextView nameTextView = viewCache.getName();
nameTextView.setText(name);
TextView numberTextView = viewCache.getNumber();
numberTextView.setText(number);
ImageView icon = (ImageView) view.findViewById(android.R.id.icon);
boolean crossed = Boolean.valueOf(cursor.getString(HelpiDB.CHECK_COLUMN));
if (crossed) {
icon.setImageState(new int[] { android.R.attr.state_checked }, true);
} else {
icon.setImageState(new int[] {}, true);
}
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
final View view = mInflater.inflate(R.layout.row, parent, false);
ViewCache viewCache = new ViewCache(view);
view.setTag(viewCache);
bindView(view, context, cursor);
return view;
}
}을 (를) 덮어 쓰기해야 알아낼
public View getView(int position, View convertView, ViewGroup parent) {
View rowView=convertView;
ViewCache viewCache=null;
if (rowView==null) {
LayoutInflater inflater=(LayoutInflater)_context.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
rowView=inflater.inflate(R.layout.row, null);
viewCache = new ViewCache(rowView);
rowView.setTag(viewCache);
}
else {
viewCache=(ViewCache)rowView.getTag();
}
_cursor.moveToPosition(position);
int id = _cursor.getColumnIndex(People._ID);
int numbercolumn = _cursor.getColumnIndex(People.NUMBER);
int namecolumn = _cursor.getColumnIndex(People.NAME);
String tag = "tag";
Log.i(tag, getItem(position).toString());
String name;
String number;
number = _cursor.getString(numbercolumn);
name = _cursor.getString(namecolumn);
Log.i("test6386", number);
Log.i("Test456", name);
TextView nameView = viewCache.getName();
TextView numberView = viewCache.getNumber();
nameView.setText(name);
numberView.setText(number);
Uri uri = ContentUris.withAppendedId(People.CONTENT_URI, _cursor.getLong(id));
Bitmap bitmap = People.loadContactPhoto(_context, uri, R.drawable.icon, null);
viewCache.getIcon().setImageBitmap(bitmap);
return(rowView);
}
는 스택 트레이스를 기입하십시오 – I82Much