Android 使用数组适配器从列表视图中的parse.com检索图像
我的数据存储在parse.com上。我试图检索一个图像和一个字符串,并将其放置在列表视图中。我有一个适配器,我一直用它来抓取文本,但不确定如何处理图像。有一句话我特别需要帮助Android 使用数组适配器从列表视图中的parse.com检索图像,android,listview,parse-platform,android-arrayadapter,Android,Listview,Parse Platform,Android Arrayadapter,我的数据存储在parse.com上。我试图检索一个图像和一个字符串,并将其放置在列表视图中。我有一个适配器,我一直用它来抓取文本,但不确定如何处理图像。有一句话我特别需要帮助 public class AppetizerAdapter extends ArrayAdapter { protected Context mContext; protected List mAppetizer; public AppetizerAdapter(Context context, List appeti
public class AppetizerAdapter extends ArrayAdapter {
protected Context mContext;
protected List mAppetizer;
public AppetizerAdapter(Context context, List appetizer) {
super(context, R.layout.custom_appetizers, appetizer);
mContext = context;
mAppetizer = appetizer;
}
// inflates each row of the app
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
// initialize view holder
ViewHolder holder;
if (convertView == null) { // If no items in the view to be displayed
convertView = LayoutInflater.from(mContext).inflate(
R.layout.custom_appetizers, null);
// initialize the views
holder = new ViewHolder(); // creates a new view
holder.aPPetizer = (TextView) convertView // calls the view
.findViewById(R.id.appetizer);
holder = new ViewHolder();
holder.appetizerImage = (ImageView) convertView
.findViewById(R.id.appetizerImage);
// call the view and setTag to the parameter (holder)
convertView.setTag(holder);
} else { // if view is previously displayed
// initialize holder
holder = (ViewHolder) convertView.getTag();
}
// get the position of the row
ParseObject appetizerObject = (ParseObject) mAppetizer.get(position);
// title
String appetizers = appetizerObject.getString("appetizers");
holder.aPPetizer.setText(appetizers);
// image
???
holder.appetizerImage.setImageResource();
return convertView; // return the view
}
public static class ViewHolder {
// declaration of variables
TextView aPPetizer;
ImageView appetizerImage;
}
我遇到的问题是:
// title
String appetizers = appetizerObject.getString("appetizers");
这允许我将字符串存储在“开胃菜”列中,这是一个字符串,但对于图像,我不确定如何对其进行编码。假设您可以从
开胃菜对象
引用获取图像的url,您只需从网络下载位图并将其设置为ImageView的位图
虽然有很多方法可以手动实现,但我建议使用库来管理下载和缓存过程。根据我的经验,我使用了以下库:
- 毕加索:
- 滑翔:
它们都有一个非常简单(和类似)的api。你可以让它显示图像的URL。你可以告诉我如何操作吗?你如何向数据库添加项目?通过你的电话?或者手动通过phpMyAdmin?我在解析中有它们。服务器是Herokuyes。我不知道那是什么。我将投票支持你的问题,希望更多的人看到:)我试过毕加索。我在build.gradle中添加了依赖项:compile'com.squareup.picasso:picasso:2.5.2'。我还添加了.jar文件,但随后出现了一个错误,即该文件是重复的,我将其删除。我不知道在哪里放置MAVEN dependency?对于图像,我在标题代码下面添加了另一个视图(holder.appetizerImage)和此代码:Picasso.with(getContext()).load(appObject.getParseFile(“imageFiles”).getUrl()。放入(holder.appetizerImageView);->给我一个错误:stack=java.lang.NoClassDefFoundError:解析失败:Lcom/squareup/picasso/picasso;在com.lizg.recipedidirectory.AppetizerAdapter.getView(AppetizerAdapter.java:64)第64行是我为以毕加索开始的图像编写的代码。使用…您使用的是Android Studio吗?如果是这样,您只需将编译'com.squareup.picasso:picasso:2.5.2'添加到build.gradle(应用程序级别的版本)中即可。如果以这种方式包含.jar文件,则无需添加它。是的,我使用的是Android Studio。好的,很好,这就是我所做的,但是我在从后端服务器检索图像文件时遇到了问题。我清理并重建了项目,现在似乎可以正常工作:)