【发布时间】:2017-11-02 20:30:04
【问题描述】:
我正在尝试使用以下代码将 Gson 对象传递给意图,并将其发送到另一个活动以获取详细信息。我试图在评论中使用这条指令中的代码,但仍然出错..(How to pass gson serialised object to Intent in android?)
这是我的代码:
public class CustomListAdapter extends ArrayAdapter<Beer> {
Context context;
int layoutResourceId;
public List<Beer> data = null;
public CustomListAdapter(Context context, int resource, List<Beer> objects) {
super(context, resource, objects);
this.context = context;
this.layoutResourceId = resource;
this.context = context;
this.data = objects;
}
static class DataHolder
{
ImageView ivBeer;
TextView tvBeerName;
TextView tvDescription;
TextView abv;
}
@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
DataHolder holder = null;
if (convertView == null)
{
LayoutInflater inflater = ((Activity) context).getLayoutInflater();
convertView = inflater.inflate(layoutResourceId, parent,false);
holder = new DataHolder();
holder.ivBeer = (ImageView) convertView.findViewById(R.id.ivBeer);
holder.tvBeerName = (TextView) convertView.findViewById(R.id.tvBeerName);
holder.tvDescription = (TextView) convertView.findViewById(R.id.tvDescription);
holder.abv = (TextView) convertView.findViewById(R.id.abv);
convertView.setTag(holder);
}
else
{
holder = (DataHolder) convertView.getTag();
}
Beer beer=data.get(position);
holder.tvBeerName.setText(beer.name);
Picasso.with(context).load(beer.imageUrl).into(holder.ivBeer);
holder.tvDescription.setText(beer.description);
holder.abv.setText(beer.abv);
// this is the trouble part:
Gson gson = new Gson();
Intent intent = new Intent (CustomListAdapter.this, BeerDetailActivity.class);
intent.putExtra("obj", gson.toJson(data));
return convertView;
}
}
【问题讨论】:
-
请提供日志,以便社区可以看到错误并提供输入。
-
错误:(103, 25) 错误:没有找到适合 Intent(CustomListAdapter,Class
) 的构造函数 Intent.Intent(String,Uri) 不适用(参数不匹配;CustomListAdapter 不能转换为字符串)构造函数 Intent.Intent(Context,Class>) 不适用(参数不匹配;CustomListAdapter 无法转换为 Context)
标签: android