package com.hawkbrowser.app; import java.util.List; import com.hawkbrowser.R; import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Adapter; import android.widget.AdapterView; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; public class BookmarkArrayAdapter extends BaseAdapter implements AdapterView.OnItemClickListener { private List<Bookmark.Item> mItems; private LayoutInflater mInflater; private BookmarkActivity mContext; public BookmarkArrayAdapter(BookmarkActivity context, List<Bookmark.Item> items) { mItems = items; mContext = context; mInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { mContext.onBookmarkItemClicked(mItems.get(position)); } @Override public int getCount() { return mItems.size(); } @Override public Object getItem(int position) { if(position > 0 && position < mItems.size()) { return mItems.get(position); } return null; } @Override public long getItemId(int position) { if(position > 0 && position < mItems.size()) { return mItems.get(position).id(); } return 0; } @Override public View getView(int position, View convertView, ViewGroup parent) { Log.d("Bookmark", String.format("getView: %d", position)); if(null != convertView) { return convertView; } ViewGroup itemView = (ViewGroup) mInflater.inflate(R.layout.bookmark_list_item, null); Bookmark.Item bi = mItems.get(position); String name = null; if(bi.type() == Bookmark.Type.Folder) { ImageView icon = (ImageView) itemView.findViewById(R.id.bookmark_list_item_icon); icon.setImageResource(R.drawable.icon_folder); name = bi.title(); } else { name = bi.title() + "\n" + bi.url(); } Log.d("Bookmark", String.format("getView, item name: %s", name)); TextView titleView = (TextView) itemView.findViewById(R.id.bookmark_list_item_title); titleView.setText(name); return itemView; } }