Ich habe ActionBarDialog (DialogFragment), AutoAdapter (RecycleView) und SportFragment. Ich bin create Methode (infoMethod) in SportFragment um DialogFragment zu zeigen und gut zu funktionieren. Aber wenn ich anrufen will, dass infoMethod in CarAdapter nicht (java.lang.NullPointerException)So zeigen Sie Dialog Fragment von ImageView onClick in RecycleView Adapter
infoMethod in SportFragment
public void infoMethod(){
Bundle args = new Bundle();
args.putString("title", "Dialog with Action Bar");
ActionBarDialog actionbarDialog = new ActionBarDialog();
actionbarDialog.setArguments(args);
actionbarDialog.show(getActivity().getSupportFragmentManager(),
"action_bar_frag");
}
ich versuchen infoMethod anrufen aus CarAdapter
public MyViewHolder(View view) {
super(view);
image= (ImageView) view.findViewById(R.id.imageViewlist);
image.setOnClickListener(this);
}
@Override
public void onClick(View v) {
SportFragment infoFrag = new SportFragment();
if (v.getId() == image.getId()){
v.startAnimation(AnimationUtils.loadAnimation(v.getContext(), R.anim.imagelist));
infoFrag.infoMethod(); //call infoMethod not work
Toast.makeText(v.getContext(), "ITEM PRESSED = " + String.valueOf(getAdapterPosition()), Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(v.getContext(), "ROW PRESSED = " + String.valueOf(getAdapterPosition()), Toast.LENGTH_SHORT).show();
}
}
Logcat
09-29 13:30:09.292 18661-18661/com.paijostudio.hitungmasa E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NullPointerException
at com.paijostudio.hitungmasa.fragment.SportFragment.infoMethod(SportFragment.java:210)
at com.paijostudio.hitungmasa.adapter.CarAdapter$MyViewHolder.onClick(CarAdapter.java:73)
at android.view.View.performClick(View.java:4204)
at android.view.View$PerformClick.run(View.java:17355)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Jede Lösung zum Anzeigen von DialogFragment? Danke
Zeigen Sie Ihr Protokoll hier ... das wird für Sie hilfreich sein. –
Ich rate nur hier, aber ich denke, dass Sie die 'infoMethod' aufrufen, die eine Aktivität erwartet. Aber zu diesem Zeitpunkt wurde die Aktivität noch nicht angefügt. Und es wird nicht, wenn Sie es dem Fragmentmanager hinzufügen und es den gesamten Fragmentlebenszyklus durchläuft. Gibt es einen Grund, warum die 'infoMethod' im SportFragment leben muss? – SunnySydeUp
@Kuldeep Kulkarni Log-Katze hinzufügen –