我有一个recyclerView和一个ImageView,它们是从Firebase数据库获取的。我正在尝试使用SharedElementTransition将recyclerView的图像传递给新活动
我在adatper类中的过渡代码如下:
view.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(context,ProductPage.class);
intent.putExtra("Node", node.getText().toString());
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation((Activity),
image, ViewCompat.getTransitionName(image));
context.startActivity(intent, optionsCompat.toBundle());
}
});
错误在下面给出:
java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.Window android.app.Activity.getWindow()' on a null object reference
任何帮助将不胜感激。
答案 0 :(得分:1)
在 ActivityOptionsCompat 中的活动中插入,使用 ActvityName.this 。
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation((Activity)context,
image, ViewCompat.getTransitionName(image));
或
尝试使活动中的recycleview项目成为点击侦听器,并使用ActivityName.this。
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation(ActivityName.this,
image, ViewCompat.getTransitionName(image));
答案 1 :(得分:0)
因为您正在适配器中使用它。您必须对活动的上下文进行大小写,然后使用它。
ActivityOptionsCompat optionsCompat = ActivityOptionsCompat.makeSceneTransitionAnimation((Activity)getContext(),
image, ViewCompat.getTransitionName(image));