【发布时间】:2015-04-28 11:20:10
【问题描述】:
我的应用程序中有 2 个选项卡。一是联系人,二是收藏夹。
我为每个标签使用 2 个片段和 2 个列表视图。
在我的列表视图中有我想添加选项的名称和星号
该用户可以单击联系人片段中的星号并将用户添加到收藏夹列表视图片段中。
我正在使用自定义适配器。我不知道我该怎么做。
这是我的自定义适配器:
public class ContactsAdapter extends ArrayAdapter<ListViewItem> {
public ContactsAdapter(Context context, List<ListViewItem> items) {
super(context, R.layout.contacts_list_item, items);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder;
if(convertView == null) {
// inflate the GridView item layout
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.contacts_list_item, parent, false);
// initialize the view holder
viewHolder = new ViewHolder();
viewHolder.ivIcon = (ImageView) convertView.findViewById(R.id.ivIcon);
viewHolder.ivStarIcon = (ImageView)convertView.findViewById(R.id.FavoriteStarImageView);
viewHolder.tvTitle = (TextView) convertView.findViewById(R.id.tvTitle);
viewHolder.tvDescription = (TextView) convertView.findViewById(R.id.tvDescription);
convertView.setTag(viewHolder);
} else {
// recycle the already inflated view
viewHolder = (ViewHolder) convertView.getTag();
}
// update the item view
ListViewItem item = getItem(position);
if(item.icon != null)
viewHolder.ivIcon.setImageURI(Uri.parse(item.icon));
else
viewHolder.ivIcon.setImageResource(R.drawable.ic_stub);
viewHolder.tvTitle.setText(item.title);
viewHolder.tvDescription.setText(item.description);
if(item.favoriteIcon)
viewHolder.ivStarIcon.setImageResource(R.drawable.ic_action_important);
else
viewHolder.ivStarIcon.setImageResource(R.drawable.ic_action_not_important);
return convertView;
}
private static class ViewHolder {
ImageView ivIcon;
ImageView ivStarIcon;
TextView tvTitle;
TextView tvDescription;
}
}
class ListViewItem {
public final String id;
public final String icon; // the drawable for the ListView item ImageView
public final String title; // the text for the ListView item title
public final String description; // the text for the ListView item description
public final Boolean favoriteIcon;
public ListViewItem(String id,String icon, String title, String description, Boolean favoriteIcon) {
this.id = id;
this.icon = icon;
this.title = title;
this.description = description;
this.favoriteIcon = favoriteIcon;
}
}
谢谢
【问题讨论】:
标签: android listview fragment adapter