Java 适配器可以';t在Android上从JSON加载图像
我的JSON代码有一些问题。 我想显示一个包含文本和图像的列表。文本和图像存储在我的在线数据库中,我使用JSON将它们下载到我的android应用程序中 JSON不显示任何错误,显示文本但不显示图像 我检查了logcat,这个过程没有错误。我使用viewAdapter在列表上显示图像 请师傅帮帮我,你能给我一些简单的解释怎么解决这个问题吗 谢谢 注意。这是我的HomeFragment.java代码(我在这里做JSON) } 这是categoryAdapter.java的代码(我将JSON的结果放在列表中)Java 适配器可以';t在Android上从JSON加载图像,java,android,json,Java,Android,Json,我的JSON代码有一些问题。 我想显示一个包含文本和图像的列表。文本和图像存储在我的在线数据库中,我使用JSON将它们下载到我的android应用程序中 JSON不显示任何错误,显示文本但不显示图像 我检查了logcat,这个过程没有错误。我使用viewAdapter在列表上显示图像 请师傅帮帮我,你能给我一些简单的解释怎么解决这个问题吗 谢谢 注意。这是我的HomeFragment.java代码(我在这里做JSON) } 这是categoryAdapter.java的代码(我将JSON的结果放
公共类CategoryAdapter扩展ArrayAdapter实现View.OnClickListener{
私人充气机;
私有最终ArrayList类别列表;
私人活动;
私有HomeFragment.CategorySelectionCallbacks mCallbacks;
私有字符串dummyUrl=”http://www.howiwork.org";
AbsListView.LayoutParams参数;
public CategoryAdapter(活动活动,HomeFragment.CategorySelectionCallbacks McCallbacks,ArrayList categoryList){
超级(活动、右布局、布局和类别列表);
这个。活动=活动;
this.inflater=LayoutInflater.from(activity.getApplicationContext());
this.categoryList=categoryList;
this.mCallbacks=mCallbacks;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
持票人行;
if(convertView==null){
convertView=充气机。充气(R.layout.layout\u类别列表,空);
行=新的视图持有者();
row.bannerImage=(ImageView)convertView.findViewById(R.id.catBannerImageView);
row.categoryImage=(ImageView)convertView.findViewById(R.id.catImageView);
row.categoryName=(TextView)convertView.findViewById(R.id.catNameTV);
}否则{
row=(ViewHolder)convertView.getTag();
}
Category=categoryList.get(位置);
毕加索.with(活动).load(实用方法)
.getDrawableFromFileName(活动,类别.getIconUrl())
.tag(category.getIconUrl())
.进入(行类别图像);
row.categoryName.setText(category.getTitle());
毕加索。与(活动)
.load(UtilMethods.getDrawableFromFileName(活动,类别.getImageUrl()))
.占位符(R.drawable.img\u banner\u占位符)
.tag(category.getIconUrl())
.fit()
.进入(横幅图像行);
row.bannerImage.setOnClickListener(此);
row.categoryImage.setTag(位置);
row.categoryName.setTag(位置);
row.bannerImage.setTag(位置);
返回视图;
}
@凌驾
public int getCount(){
返回categoryList.size();
}
@凌驾
公共void onClick(视图v){
int position=Integer.parseInt(v.getTag().toString());
mCallbacks.onCategorySelected(categoryList.get(position).getId(),
categoryList.get(position.getTitle());
}
私有静态类视图持有者{
公众影像浏览;
公共文本视图类别名称;
公共图像视图类别图像;
}
}试试这个
Picasso.with(activity).load(category.getIconUrl())
.into(row.categoryImage);
如果成功的话!。您可以检查UtilMethods.getDrawableFromFileName() 您可以发布类和方法UtilMethods.getDrawableFromFileName(),如果其余数据正在加载,则可能是您使用毕加索加载数据的方式存在问题。检查
UtilMethods.getDrawableFromFileName()
,类别。getImageUrl()
这是因为我的图像太大吗,先生?请先尝试将该URL加载到浏览器中。是在加载图像吗?我不能这样做,先生,android studio给我的错误是“无法解析方法.导入”
public class CategoryAdapter extends ArrayAdapter<Category> implements View.OnClickListener {
private final LayoutInflater inflater;
private final ArrayList<Category> categoryList;
private Activity activity;
private HomeFragment.CategorySelectionCallbacks mCallbacks;
private String dummyUrl = "http://www.howiwork.org";
AbsListView.LayoutParams params;
public CategoryAdapter(Activity activity, HomeFragment.CategorySelectionCallbacks mCallbacks, ArrayList<Category> categoryList) {
super(activity, R.layout.layout_category_list);
this.activity = activity;
this.inflater = LayoutInflater.from(activity.getApplicationContext());
this.categoryList = categoryList;
this.mCallbacks = mCallbacks;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder row;
if (convertView == null) {
convertView = inflater.inflate(R.layout.layout_category_list, null);
row = new ViewHolder();
row.bannerImage = (ImageView) convertView.findViewById(R.id.catBannerImageView);
row.categoryImage = (ImageView) convertView.findViewById(R.id.catImageView);
row.categoryName = (TextView) convertView.findViewById(R.id.catNameTV);
} else {
row = (ViewHolder) convertView.getTag();
}
Category category = categoryList.get(position);
Picasso.with(activity).load(UtilMethods
.getDrawableFromFileName(activity,category.getIconUrl()))
.tag(category.getIconUrl())
.into(row.categoryImage);
row.categoryName.setText(category.getTitle());
Picasso.with(activity)
.load(UtilMethods.getDrawableFromFileName(activity,category.getImageUrl()))
.placeholder(R.drawable.img_banner_placeholder)
.tag(category.getIconUrl())
.fit()
.into(row.bannerImage);
row.bannerImage.setOnClickListener(this);
row.categoryImage.setTag(position);
row.categoryName.setTag(position);
row.bannerImage.setTag(position);
return convertView;
}
@Override
public int getCount() {
return categoryList.size();
}
@Override
public void onClick(View v) {
int position = Integer.parseInt(v.getTag().toString());
mCallbacks.onCategorySelected(categoryList.get(position).getId(),
categoryList.get(position).getTitle());
}
private static class ViewHolder {
public ImageView bannerImage;
public TextView categoryName;
public ImageView categoryImage;
}
Picasso.with(activity).load(category.getIconUrl())
.into(row.categoryImage);