我正在使用适配器将视图从Firebase填充到CardView。我尝试在适配器内的cardView中的一个项目上使用onclicklistener打开一个新片段。当我不使用fragment时,它可以正常工作,打开Activity2,如下所示:
public void onBindViewHolder(ViewHolder holder, int position) {
Upload upload = (Upload) this.uploads.get(position);
holder.textViewName.setText(upload.getName());
Glide.with(this.context).load(upload.getUrl()).into(holder.imageView);
holder.textViewYear.setText(upload.getYr());
holder.mView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
v.getContext().startActivity(new Intent(v.getContext(), Activity2.class));
}
});
}
字符串
现在,在使用片段时,我尝试在适配器中使用viewpager来在单击卡片时选择另一个视图,这不起作用。每次我启动应用程序时,它都会在点击卡时崩溃:
public void onBindViewHolder(ViewHolder holder, int position) {
Upload upload = (Upload) this.uploads.get(position);
holder.make.setText(upload.getName());
Glide.with(this.context).load(upload.getUrl()).into(holder.imageView);
holder.year.setText(upload.getYr());
holder.mView.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
viewPager.setCurrentItem(3);
}
});
}
型
这是我的crash logcat:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: greeny.cop, PID: 22602
java.lang.NullPointerException
at greeny.cop.Adapter.CarPath$1.onClick(CarPath.java:61)
at android.view.View.performClick(View.java:4446)
at android.view.View$PerformClick.run(View.java:18430)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5281)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:932)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:748)
at dalvik.system.NativeStart.main(Native Method)
型
提前感谢任何帮助。
1条答案
按热度按时间bttbmeg01#
考虑到你的片段中有你的视图分页器。
您的ViewPager未初始化,并且您初始化ViewPager的方式不正确。
你可以使用一个接口来做这件事。
创建接口
字符串
在片段中实现接口
型
在适配器的一个构造函数中添加
ViewPagerListener
参数型
在你的片段中,像这样初始化你的适配器
型
调用适配器
onBindViewHolder
方法中的接口方法型
您可以像这样设置片段中的ViewPager位置
型