Java 如何从recylerview获取单个值
我已经将数据从recyclerview适配器传递到主活动,然后在单击recyclerview的图像时传递到其他活动。 现在我从中得到了多个值,我只想要一个URL 下面是适配器的代码Java 如何从recylerview获取单个值,java,android,android-recyclerview,Java,Android,Android Recyclerview,我已经将数据从recyclerview适配器传递到主活动,然后在单击recyclerview的图像时传递到其他活动。 现在我从中得到了多个值,我只想要一个URL 下面是适配器的代码 public void onBindViewHolder(@NonNull ViewHolder holder, int position) { Datum datum = datums.get(position); Glide.with(context).load(datums.
public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
Datum datum = datums.get(position);
Glide.with(context).load(datums.get(position).getThumbnail()).into(holder.thumbnail);
holder.title.setText(datum.getTitle());
holder.artist.setText(datum.getArtist());
holder.duration.setText(Integer.toString(datum.getDuration()));
//imageview interface pass
holder.thumbnail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onImageClickListener.onImageClick(datum.getUrl());
onImageClickListener.onImageClick(datum.getThumbnail());
}
});
}
主recylerview主活动中的onclick事件
public void onImageClick(String imageData ) {
Intent i = new Intent(MainActivity.this,exoplayer.class);
i.putExtra("image", imageData);
i.putExtra("url", imageData);
startActivity(i);
}
这是其他活动的代码
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_exoplayer);
thumb = findViewById(R.id.thumb);
link = findViewById(R.id.link);
String image = getIntent().getStringExtra("image");
String url = getIntent().getStringExtra("url");
link.setText(url);
Glide.with(this).asBitmap().load(image).into(thumb);
}
以下是输出的屏幕截图
我只想要那个更大的url,我不需要其他url,它是缩略图的url。好的,从我试图理解的角度来看,
url
被传递了两次,而您希望它被传递一次:
如果是这样的话:
更新onImageClickListener
界面中的方法:
//make the method accept two parameters
public void onImageClick(String imageData , String urlData);
public void onImageClick(String imageData , String urlData) {
Intent i = new Intent(MainActivity.this,exoplayer.class);
i.putExtra("image", imageData);
i.putExtra("url", urlData);
startActivity(i);
}
//imageview interface pass
holder.thumbnail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onImageClickListener.onImageClick(datum.getThumbnail() , datum.getUrl());
}
});
下一步更新在MainActivity
中实现的方法:
//make the method accept two parameters
public void onImageClick(String imageData , String urlData);
public void onImageClick(String imageData , String urlData) {
Intent i = new Intent(MainActivity.this,exoplayer.class);
i.putExtra("image", imageData);
i.putExtra("url", urlData);
startActivity(i);
}
//imageview interface pass
holder.thumbnail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onImageClickListener.onImageClick(datum.getThumbnail() , datum.getUrl());
}
});
最后,当您单击RecyclerView
项目时,执行以下操作:
//make the method accept two parameters
public void onImageClick(String imageData , String urlData);
public void onImageClick(String imageData , String urlData) {
Intent i = new Intent(MainActivity.this,exoplayer.class);
i.putExtra("image", imageData);
i.putExtra("url", urlData);
startActivity(i);
}
//imageview interface pass
holder.thumbnail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
onImageClickListener.onImageClick(datum.getThumbnail() , datum.getUrl());
}
});
我不明白你想要什么,问题不清楚。