カスタムアダプタがあります。内で、「holder.contact」getView()
に連絡先のリストを入力しようとしていますが、成功しません。私には連絡先を入力するこの方法がありますが、それは私の機能を混乱させます。このコードは私のクラスの外にあります:ListView
CheckBoxes
CustomAdapter
public void populateContactList() {
// Build adapter with contact entries
Cursor cursor = getContacts();
String[] fields = new String[] {
ContactsContract.Data.DISPLAY_NAME
};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.contact_entry, cursor,
fields, new int[] {R.id.contactEntryText});
lv.setAdapter(adapter);
} // END POPULATECONTACTLIST
public Cursor getContacts()
{
// Run query
Uri uri = ContactsContract.Contacts.CONTENT_URI;
String[] projection = new String[] {
ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME
};
String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP + " = '" +
(false ? "0" : "1") + "'";
String[] selectionArgs = null;
String sortOrder = ContactsContract.Contacts.DISPLAY_NAME + " COLLATE LOCALIZED ASC";
return managedQuery(uri, projection, selection, selectionArgs, sortOrder);
} // END GETCONTACTS
しかし、私はここでそれを定義しようとしていますが、成功していません(カスタムアダプタクラス):
@Override
public View getView(final int position, View convertView, ViewGroup parent)
{
View rowView = convertView;
ViewHolder holder = null;
if (rowView == null) {
LayoutInflater inflater = (LayoutInflater)context.getSystemService(
Context.LAYOUT_INFLATER_SERVICE);
// HERE I AM INFLATING LISTVIEW LAYOUT.
rowView = inflater.inflate(R.layout.contact_entry, null, false);
holder = new ViewHolder();
holder.photo = (ImageView) rowView.findViewById(R.id.iv_contactPic);
holder.contact = (TextView) rowView.findViewById(R.id.contactEntryText);
holder.tv = (TextView) rowView.findViewById(R.id.SMSCounttext);
holder.cb = (CheckBox) rowView.findViewById(R.id.cb_contactHistoryChk);
rowView.setTag(holder);
} else {
holder = (ViewHolder) rowView.getTag();
}
内にpopulateContactList()メソッドを適用する方法はありgetView()
ますか?
私のコンストラクターは次のようになります。「要素」はすでに別のテキストビューで使用されています。
public CustomAdapter(Context context, int type, ArrayList<String> elements){
super(context, type, elements);