gpt4 book ai didi

java - 图像 url 将 null 值传递给另一个 Intent

转载 作者:行者123 更新时间:2023-12-01 10:52:18 25 4
gpt4 key购买 nike

我已经在我的应用程序中实现了 RecyclerView,并在 Recycler View 上设置了 onClickListener。文本字段已成功通过,但是我在回收器 View 中也有一张图像,该图像是通过毕加索带来的。因此,我尝试检索存储在另一个类中的图像 url,但我得到一个空值。

代码是:

package xyz.xyz;

import android.content.Context;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Typeface;
import android.media.Image;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import com.android.volley.toolbox.ImageLoader;
import com.android.volley.toolbox.NetworkImageView;
import com.squareup.picasso.Picasso;

import org.w3c.dom.Text;

import java.util.ArrayList;
import java.util.List;


public class FlatSearchCardAdapter extends RecyclerView.Adapter<FlatSearchCardAdapter.ViewHolder> {


private Context context;
private ImageLoader imageLoader;
List<FlatCardItemReturn> flatlistCard;




public FlatSearchCardAdapter(List<FlatCardItemReturn> flatlistCard, Context context){
super();
//Getting all the superheroes
this.flatlistCard = flatlistCard;
this.context = context;
}

@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext())
.inflate(R.layout.flatrenter_list_item, parent, false);
ViewHolder viewHolder = new ViewHolder(v);
return viewHolder;
}

@Override
public void onBindViewHolder(ViewHolder holder, int position) {

FlatCardItemReturn flatcarditemreturn = flatlistCard.get(position);






Picasso.with(context).load(flatcarditemreturn.getImageUrl()).placeholder(R.drawable.loadingpicasso).error(R.drawable.errorpicasso).resize(100, 100).into(holder.imageView);


holder.textViewId.setText(flatcarditemreturn.getId());
holder.textViewType.setText(flatcarditemreturn.getType());

holder.textViewFurnishing.setText(flatcarditemreturn.getFurnishing());
holder.textViewArea.setText(flatcarditemreturn.getArea());
holder.textViewPrice.setText(flatcarditemreturn.getPrice());
holder.textViewNumberofrooms.setText(flatcarditemreturn.getNumberofrooms());








}

@Override
public int getItemCount() {
return flatlistCard.size();
}

public static class ViewHolder extends RecyclerView.ViewHolder{



public ImageView imageView;
public TextView textViewType;
public TextView textViewPrice;
public TextView textViewFurnishing;
public TextView textViewArea;
public TextView textViewNumberofrooms;
public TextView textViewId;

public FlatCardItemReturn flatcarditemreturn = new FlatCardItemReturn();






public ViewHolder(View itemView) {
super(itemView);





textViewId = (TextView) itemView.findViewById(R.id.id);
imageView = (ImageView) itemView.findViewById(R.id.flatphoto);
textViewType = (TextView) itemView.findViewById(R.id.type);
textViewFurnishing = (TextView) itemView.findViewById(R.id.furnishing);
textViewArea = (TextView) itemView.findViewById(R.id.area);
textViewPrice = (TextView) itemView.findViewById(R.id.price);
textViewNumberofrooms = (TextView) itemView.findViewById(R.id.numberofrooms);





itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(v.getContext(), flatrenterpostview.class);
i.putExtra("idvalue", textViewId.getText().toString());
i.putExtra("typevalue", textViewType.getText().toString());
i.putExtra("furnishingvalue", textViewFurnishing.getText().toString());
i.putExtra("areavalue", textViewArea.getText().toString());
i.putExtra("pricevalue", textViewPrice.getText().toString());
i.putExtra("numberofroomsvalue", textViewNumberofrooms.getText().toString());
i.putExtra("imageurl", flatcarditemreturn.getImageUrl());








v.getContext().startActivity(i);

}
});


}


}
}

我对如何设置其中的位置以获得正确的值感到非常困惑。如果有人能帮助我,我将不胜感激。只是为了清楚起见, i.putExtra("imageurl", flatcarditemreturn.getImageUrl());什么也没给予。我希望 url 存储在我的类(class)中。我检查过,该网址存储完好。

最佳答案

Just to make it clear, i.putExtra("imageurl", flatcarditemreturn.getImageUrl()); is giving nothing. I expect the url stored in my class

那为什么要在 ViewHolder 中创建一个新的 FlatCardItemReturn 呢?这一行:

public FlatCardItemReturn flatcarditemreturn = new FlatCardItemReturn();

您需要为 ViewHolder 设置正确的数据项,而不是实例化一个新的“空”数据项。您可以通过向 ViewHolder 添加一个方法来轻松完成此操作:

public void setData(FlatCardItemReturn item) {
flatcarditemreturn = item;
}

现在,只需从 onBindViewHolder() 调用它即可:

@Override
public void onBindViewHolder(ViewHolder holder, int position) {

FlatCardItemReturn flatcarditemreturn = flatlistCard.get(position);

// other stuff omitted

holder.setData(flatcarditemreturn);
}

您现在还可以更改:

public FlatCardItemReturn flatcarditemreturn = new FlatCardItemReturn();

进入:

public FlatCardItemReturn flatcarditemreturn;

关于java - 图像 url 将 null 值传递给另一个 Intent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33787711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com