Ошибка вызова DialogFragment
При нажатии на CardView должен появляться DialogFragment но приложение крашиться, в логах пишет следующие
Process: com.example.test, PID: 5661
java.lang.ClassCastException: android.view.ContextThemeWrapper cannot be cast to androidx.appcompat.app.AppCompatActivity
at com.example.test.Attraction.AdapterAttractionsPackageOffer.lambda$onBindViewHolder$0(AdapterAttractionsPackageOffer.java:56)
at com.example.test.Attraction.-$$Lambda$AdapterAttractionsPackageOffer$9MUGLDlFC3haVjC8L-YKfGaDvo8.onClick(lambda)
at android.view.View.performClick(View.java:5692)
at android.view.View$PerformClick.run(View.java:22596)
at android.os.Handler.handleCallback(Handler.java:751)
Сам Adapter
public class AdapterAttractionsPackageOffer extends RecyclerView.Adapter<AdapterAttractionsPackageOffer.AttractionsViewHolderPackageOffer> {
public ArrayList<ItemPackageOffer> mFavList;
public AdapterAttractionsPackageOffer(ArrayList<ItemPackageOffer> favList) {
mFavList = favList;
}
@NonNull
@Override
public AttractionsViewHolderPackageOffer onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.card_attraction_package_offer, parent, false);
return new AttractionsViewHolderPackageOffer(v);
}
public static class AttractionsViewHolderPackageOffer extends RecyclerView.ViewHolder {
public ImageView card_image_1;
public TextView Package_offer_title;
public CardView Card;
public AttractionsViewHolderPackageOffer(View itemView) {
super(itemView);
card_image_1 = itemView.findViewById(R.id.img_po);
Package_offer_title = itemView.findViewById(R.id.tex);
Card = itemView.findViewById(R.id.att_po);
}
}
@SuppressLint("LongLogTag")
@Override
public void onBindViewHolder(AttractionsViewHolderPackageOffer holder, int position) {
ItemPackageOffer currentItem = mFavList.get(position);
holder.card_image_1.setImageResource(currentItem.get_Package_offer_img());
holder.Package_offer_title.setText(currentItem.get_Package_offer_title());
holder.Card.setOnClickListener(v -> {
DialogPO dialogPO = new DialogPO();
dialogPO.show(((AppCompatActivity) v.getContext()).getSupportFragmentManager(), "item");
Bundle bundle = new Bundle();
bundle.putString("title_po", currentItem.get_Package_offer_title());
bundle.putString("description_po", currentItem.get_Package_offer_description());
bundle.putString("cost_po", currentItem.get_Package_offer_cost());
dialogPO.setArguments(bundle);
});
holder.getAdapterPosition();
}
@Override
public int getItemCount() {
return mFavList.size();
}
}
У меня есть похожий Adapter но там при вызове все работает то есть проблема не в DialogFragment так как при вызове из другого Fragment всё работает.
Fragment в котором находится CardView
public class FragmentAtt extends Fragment {
ArrayList<ItemPackageOffer> mFavList;
String URL = "http://qqqqqqqqq.mcdir.ru/dbpo.php";
RecyclerView mRec;
RecyclerView.LayoutManager recyclerViewlayoutManager;
RecyclerView.Adapter recyclerViewadapter;
ImageView GET_PO_IMG;
String GET_PO_TITLE = "title_po";
String GET_PO_DESCRIPTION = "description_po";
String GET_PO_COST = "cost_po";
RequestQueue requestQueue;
JsonArrayRequest jsonArrayRequest;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_test_attraction, container, false);
TabLayout tabLayout = view.findViewById(R.id.tab);
ViewPager viewPager = view.findViewById(R.id.pager);
setupViewPager(viewPager);
tabLayout.setupWithViewPager(viewPager);
return view;
}
@SuppressLint("InflateParams")
@Override
public void onViewCreated(@NonNull final View view, @Nullable Bundle savedInstanceState) {
mRec = requireView().findViewById(R.id.rec_po);
mFavList = new ArrayList<>();
recyclerViewadapter = new AdapterAttractionsPackageOffer(mFavList);
recyclerViewlayoutManager = new LinearLayoutManager(getContext());
mRec.setHasFixedSize(true);
mRec.setLayoutManager(recyclerViewlayoutManager);
mRec.setAdapter(recyclerViewadapter);
JSON_DATA_WEB_CALL2();
//recyclerViewlayoutManager = new LinearLayoutManager(getActivity(), LinearLayoutManager.HORIZONTAL, false);
SnapHelper snapHelper = new GravitySnapHelper(Gravity.START);
snapHelper.attachToRecyclerView(mRec);
}