У меня есть класс Ресайклер адаптера и реализован setOnClickListener
заменить фрагмент:android.app.Application не может быть приведен к android.app.Activity при использовании FragmentManager в Recycler адаптер
public PlacesAdapter(Context mContext, List<Place> placeList) {
this.mContext = mContext;
this.placeList = placeList;
}
holder.thumbnail.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
FragmentManager fm = ((Activity)mContext).getFragmentManager();
FragmentTransaction ft = fm.beginTransaction();
ft.replace(R.id.mainFragmenLayout, new restaurantsFragment());
Toast.makeText(mContext, "The place is tapped.", Toast.LENGTH_SHORT).show();
}
});
Я использую API 25 и имеют после импорта:
import android.app.Activity;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
контекст создается следующим образом:
private Context mContext;
public PlacesAdapter(Context mContext, List<Place> placeList) {
this.mContext = mContext;
this.placeList = placeList;
}
И адаптер конкретизируется следующим образом:
adapter = new PlacesAdapter(getActivity().getApplicationContext(), placeList);
Но приложение падает и возвращает следующие ошибки:
java.lang.ClassCastException: android.app.Application cannot be cast to android.app.Activity
Пожалуйста, покажите, как вы назначили 'mContext' –
Вы использовали' getApplicationContext' вместо деятельности, я уверен –
@ cricket_007 смотрите обновленный вопрос. –