您好,并且事先感谢,我试图获取一些照片并将其添加到Android中的gridview,我设法使用Gridview ImageAdapter,但我想在TextView中获取文本值,我将文本存储在Arraylist中,这是我的适配器:
public class ImageAdapter extends BaseAdapter {
private Context mContext;
public ImageAdapter(Context c) {
mContext = c;
}
public int getCount() {
return MainActivity.charactersimageurl.size();
}
public Object getItem(int position) {
return null;
}
public long getItemId(int position) {
return 0;
}
// create a new ImageView for each item referenced by the Adapter
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) { // if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(175, 175));
// imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
Picasso.with(this.mContext).load(MainActivity.charactersimageurl.get(position)).into(imageView);
return imageView;
}
这是我的Xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:background="@color/FourthColor"
android:orientation="vertical"
android:padding="5dp">
<ImageView
android:id="@+id/image"
android:layout_width="100dp"
android:layout_height="100dp" />
<TextView
android:id="@+id/undertitle"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:gravity="center"
android:textSize="12sp" />
答案 0 :(得分:1)
您不需要将MainActivity.charactersimageurl
作为static
并将网址ArrayList
添加到ImageAdapter构造函数中。您可以在getItem()
中使用getView()
。
public class ImageAdapter extends BaseAdapter {
private Context mContext;
private List<String> imageUrls;
public ImageAdapter(Context c, List<String> imageUrls) {
mContext = c;
this.imageUrls = imageUrls;
}
public int getCount() {
return imageUrls.size();
}
public Object getItem(int position) {
return imageUrls.get(position);
}
public long getItemId(int position) {
return 0;
}
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if (convertView == null) { // if it's not recycled, initialize some attributes
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(175, 175));
// imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
// imageView.setPadding(8, 8, 8, 8);
} else {
imageView = (ImageView) convertView;
}
String imageUrl = (String) getItem(position);
Picasso.with(this.mContext).load(imageUrl).into(imageView);
return imageView;
}
如果您想更改列表项,则需要添加addItem(String url)
,如下所示。
public void addItem(String url) {
imageUrls.add(url);
notifyDataSetChanged();
}