Android新手求助:如何将Category模型的category_image传递至Adapter并修正错误
Android新手问题:Category模型的category_image字段传递至GalleryAdapter报错修复
我是一名Android新手,在尝试将Category模型中的**public String category_image;**字段传递至GalleryAdapter时多次出现错误,希望能修正现有代码中的问题。报错表现为Picasso加载图片时的对象调用错误,以及Adapter视图引用、数据获取逻辑问题。
Category模型代码
import java.io.Serializable; public class Category implements Serializable { public int cid = -1; public String category_name; public String category_image; public String recipes_count; public Category(String name, String profession, int photo) { } public String getItemName() { return this.category_name; } public String category_image() { return this.category_image; } }
GalleryAdapter代码
public class GalleryAdapter extends BaseAdapter { private Context context; private List<Category> mensWears; public GalleryAdapter(Context context, List<Category> mensWears) { this.context = context; this.mensWears = mensWears; } @Override public int getCount() { return mensWears.size(); } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public View getView(int i,View view,ViewGroup viewGroup) { final Category mensWear = mensWears.get(i); if (view == null) { final LayoutInflater layoutInflater = LayoutInflater.from(context); view = layoutInflater.inflate(R.layout.custom_gallery_layout, null); } //For text TextView prdId = view.findViewById(R.id.name); // prdId.setText(prdId.toString()); Picasso.get() .load(getApiUrl + "/upload/category/" + mensWears.category_image) .placeholder(R.drawable.ic_thumbnail) .into(i.category_image); prdId.setText(mensWears.get(i).getItemName()); // //For images // final ImageView imageView = view.findViewById(R.id.name); // if(!TextUtils.isEmpty(mensWear.getItemName())){ // //// Picasso.with(context).load(imageUrlFromServer+mensWear.category_image()) //// .into(imageView); return view; }
Adapter布局代码
<?xml version="1.0" encoding="utf-8"?> <com.kannada.newspaper.india.utils.SquareFrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/ll_main" android:padding="@dimen/nav_header_vertical_spacing" android:orientation="vertical"> <ImageView android:background="@drawable/bg_google" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/imageView"/> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical"> <LinearLayout android:layout_width="100dp" android:layout_height="100dp" android:gravity="center" android:alpha="1" android:orientation="vertical"> <ImageView android:layout_width="60dp" android:layout_height="60dp" android:layout_gravity="center" android:id="@+id/photo"/> </LinearLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/colorWhite" android:textSize="@dimen/primeryText" android:fontFamily="@font/sfprodisplayregular" android:layout_marginTop="@dimen/margin10" android:id="@+id/name" android:text="Facebook"/> </LinearLayout> </com.kannada.newspaper.india.utils.SquareFrameLayout>
错误修复步骤
1. 修正Category模型构造方法
当前构造方法未对成员变量赋值,导致category_image等字段始终为null,修改为:
public Category(String category_name, String category_image, int cid) { this.category_name = category_name; this.category_image = category_image; this.cid = cid; }
(可根据实际业务需求调整参数,确保创建Category对象时能正确初始化所有需要的字段)
2. 修复GalleryAdapter中的Picasso加载逻辑
原代码存在多处对象调用错误,修改为:
// 获取布局中用于显示图片的ImageView ImageView photoIv = view.findViewById(R.id.photo); Picasso.get() .load(getApiUrl + "/upload/category/" + mensWear.category_image) .placeholder(R.drawable.ic_thumbnail) .into(photoIv);
- 注意使用已获取的
mensWear对象访问category_image字段,而不是直接操作List集合 into()方法需要传入布局中的ImageView控件,而非字符串字段或索引
3. 完善Adapter的基础方法
原getItem()和getItemId()方法不符合BaseAdapter规范,修改为:
@Override public Object getItem(int i) { return mensWears.get(i); } @Override public long getItemId(int i) { return i; }
4. 其他优化
- 移除代码中无效的注释,保持代码整洁
- 确保
getApiUrl是已定义的有效字符串常量,避免空指针或无效URL问题
内容的提问来源于stack exchange,提问作者atozcodes
相关产品推荐
相关产品推荐

