Java 回收者查看图像不是';t单击以打开新页面
我试图让RecyclerView中的每个图像都可以点击打开照片,以及照片的标题和描述,但所有这些信息都来自Flickr,我添加了我认为合适的代码,但它似乎不起作用,因为没有图像可以点击,非常感谢您提供有关如何解决此问题的任何指导 在details类中使用一个简单的findByViewId()方法就足够了,还是我缺少了更多的方法?就像我说的,任何帮助都是感激的 谢谢大家! ImageListAdapter类Java 回收者查看图像不是';t单击以打开新页面,java,android,flickr,Java,Android,Flickr,我试图让RecyclerView中的每个图像都可以点击打开照片,以及照片的标题和描述,但所有这些信息都来自Flickr,我添加了我认为合适的代码,但它似乎不起作用,因为没有图像可以点击,非常感谢您提供有关如何解决此问题的任何指导 在details类中使用一个简单的findByViewId()方法就足够了,还是我缺少了更多的方法?就像我说的,任何帮助都是感激的 谢谢大家! ImageListAdapter类 import android.content.Context; import androi
import android.content.Context;
import android.content.Intent;
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 com.android.volley.toolbox.NetworkImageView;
import java.util.ArrayList;
/**
* Created by Adam on 22/12/2017.
*/
public class ImageListAdapter
extends RecyclerView.Adapter<ImageListAdapter.ViewHolder> {
private NetworkImageView imageThumbnail;
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView imageTitle;
public NetworkImageView mainImage;
public ViewHolder(View itemView) {
super(itemView);
imageTitle = (TextView) itemView.findViewById(R.id.imageTitle);
mainImage = (NetworkImageView)
itemView.findViewById(R.id.mainImage);
}
private View.OnClickListener itemClicked = new View.OnClickListener() {
int position = ViewHolder.this.getLayoutPosition();
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext(),
DetailsActivity.class);
intent.putExtra("PHOTO_POSITION", position);
imageThumbnail.setOnClickListener(itemClicked);
itemView.getContext().startActivity(intent);
}
};
}
//Data Source
public ArrayList<ImageInfo> imageList = new ArrayList<ImageInfo>();
// context
private Context context;
public ImageListAdapter(Context context) {
this.context = context;
}
@Override
public int getItemCount() {
return imageList.size();
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
//Create the view for the cell in the list
View v = LayoutInflater.from(context).inflate(R.layout.cell_image_card, parent, false);
ImageListAdapter.ViewHolder vh = new ImageListAdapter.ViewHolder(v);
return vh;
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
ImageInfo imageInfo = imageList.get(position);
holder.imageTitle.setText(imageInfo.title);
holder.mainImage.setImageUrl(imageInfo.url_m,
NetworkMgr.getInstance(context).imageLoader);
// holder.mainImage.setImageResource(imageInfo.imageResource);
}
}
您只是忘记在mainImage视图上设置onClick侦听器 步骤1:在mainImage上设置单击侦听器
public ViewHolder(View itemView) {
super(itemView);
final Context mContext = itemView.getContext();
final int position = getAdapterPosition();
imageTitle = (TextView) itemView.findViewById(R.id.imageTitle);
mainImage = (NetworkImageView)
itemView.findViewById(R.id.mainImage);
mainImage.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(mContext, DetailsActivity.class);
intent.putExtra("PHOTO_POSITION", position);
mContext.startActivity(intent);
}
});
}
第二步:在细节活动中获得这样的职位
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
Intent intent = getIntent();
int position = intent.getIntExtra("PHOTO_POSITION", 0);
ImageInfo imageInfo = NetworkMgr.getInstance(this).imageList.get(position);
//use image info to get the image and title details.
}
添加imageTitle=(TextView)itemView.findViewById(R.id.imageTitle);mainImage=(NetworkImageView)@StringForever我会在ViewHolder(View itemView)的DetailsActivity?中添加此选项吗
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_details);
Intent intent = getIntent();
int position = intent.getIntExtra("PHOTO_POSITION", 0);
ImageInfo imageInfo = NetworkMgr.getInstance(this).imageList.get(position);
//use image info to get the image and title details.
}