Рассматриваемый AdapterView — это GridView. Мне интересно, что именно подразумевается под «метод setAdapter() затем устанавливает пользовательский адаптер (ImageAdapter) в качестве источника для всех элементов, отображаемых в сетке». в этом официальном руководстве по Android. Это метод getView()?
Моя цель — создать представление сетки, которое получает данные от директора SD-карты, а не от папки ресурсов. Поэтому вместо работы с идентификаторами ресурсов я буду работать с абсолютными путями.
Я пытаюсь установить что-то вроде:
adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1);
gridview.setAdapter(new ImageAdapter(this, mImgFilenames));
С адаптером изображения:
public class ImageAdapter extends BaseAdapter {
private Context mContext;
private List<String> mPaths;
// Store the list of image IDs
public ImageAdapter(Context c, List<String> paths) {
mContext = c;
this.mPaths = paths;
}
// Return the number of items in the Adapter
@Override
public int getCount() {
return mPaths.size();
}
// Return the data item at position
@Override
public Object getItem(int position) {
return mPaths.get(position);
}
// Will get called to provide the ID that
// is passed to OnItemClickListener.onItemClick()
@Override
public long getItemId(int position) {
return 0;
}
// Return an ImageView for each item referenced by the Adapter
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView = (ImageView) convertView;
if (imageView == null) {
//typical code for new view
}
//load the image
Bitmap bmImg = BitmapFactory.decodeFile((String) getItem(position));
imageView.setImageBitmap(bmImg);
return imageView;
}
}
Поэтому я говорю не об обязательных методах реализации, а о том, что требуется от инфраструктуры адаптера, чтобы она служила таковой. Говоря об этом, я понятия не имею, что должен возвращать getItemId.
List
, почему бы не использоватьArrayAdapter
? Это было бы намного проще. - person CommonsWare   schedule 30.11.2014ImageAdapter
должен расширятьArrayAdapter
, а неBaseAdapter
. Тогда вам действительно нужно беспокоиться только оgetView()
и ни о чем другом. - person CommonsWare   schedule 30.11.2014