【发布时间】:2018-07-16 20:06:07
【问题描述】:
我正在尝试这样做。在 RecyclerView 的 CardView 中,如果您点击图像,则必须打开一个带有更大版本图像的新活动。就像点击 Whatsapp 的个人资料图片一样。
所以我想我会在图像上使用 OnClicklisterner。
我在运行它时收到此错误消息:
错误:不兼容的类型:无法转换为 Activity
一些帮助真的很感激,我对 Android 和 Java 还是新手,我有点卡住了。
这是我到目前为止尝试过的代码:
@Override
public void onBindViewHolder(final MyViewTwoHolder holder, int position) {
holder.tvBrand.setText((CharSequence) modelTwoArrayList.get(position).getBrand());
holder.tvImage.setImageResource(Integer.parseInt(String.valueOf(modelTwoArrayList.get(position).getImage())));
holder.tvImage.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this, modelTwoArrayList.get(position).getImage());
Intent i = new Intent(view.getContext(), DetailsActivity.class);
view.getContext().startActivity(i, options.toBundle());
}
});
这一行的位置给了我问题:
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(this, modelTwoArrayList.get(position).getImage());
提前感谢您的宝贵时间。
我现在的代码:
@Override
public void onBindViewHolder(final MyViewTwoHolder holder, int position) {
holder.tvBrand.setText((CharSequence) modelTwoArrayList.get(position).getBrand());
holder.tvImage.setImageResource(Integer.parseInt(String.valueOf(modelTwoArrayList.get(position).getImage())));
holder.tvImage.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation((Activity) ctx, holder.tvImage, "imageAnimation");
Intent i = new Intent(ctx, DetailsActivity.class);
i.putExtra("image_url", String.valueOf(holder.tvImage));
ctx.startActivity(i, options.toBundle());
}
});
还有我的 DetailsActivity:
public class DetailsActivity extends AppCompatActivity {
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.details_activity);
getIncomingIntent();
}
private void getIncomingIntent(){
String imageUrl = getIntent().getStringExtra("imageAnimation");
setImage(imageUrl);
}
private void setImage(String imageUrl){
ImageView image = findViewById(R.id.beer_logo);
}}
【问题讨论】:
-
试试这个
ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(view.getContext(), holder.tvImage,"yourSharedElementName");
标签: java android onclicklistener recyclerview-layout