Reputation: 103
Here is the Error from My Logcat :
Here is the Complete Source Code : https://pastebin.com/MMMybRd0
Caused by: java.lang.ClassCastException:MainScreenTeacher cannot be cast to MainScreen at FragmentHome.onAttach(FragmentHome.java:176)
FragmentHome.java
public class FragmentHome extends Fragment implements RecyclerViewAdapter.ItemListener {
private static AsyncHttpClient client = new AsyncHttpClient();
View itemView;
private LinearLayout busDirectory, absentDirectory;
private SharedPreferences pref = null;
RecyclerView recyclerView;
ArrayList arrayList;
MainScreen activity;
private List<SettingProfileItem> students;
private LoadingView load;
private FragmentHomeListener fragmentHomeListener;
private String schoolIdSelected;
private String studentlIdSelected;
private String fees_url = "";
public FragmentHome() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Util.setSelectedLang(getActivity());
}
public interface FragmentHomeListener {
void onSettingsHomeClicked();
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
fragmentHomeListener = (FragmentHomeListener) getActivity();
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
activity = (MainScreen) context;
}
And Here is my MainScreen.java :
public class MainScreen extends AppCompatActivity
implements RecyclerViewAdapterBottom.ItemListener, FragmentHome.FragmentHomeListener,
FragmentSettingProfile.SettingsFragmentListener {
String KEY_ADS_STR = "ads_str_json";
private static AsyncHttpClient client = new AsyncHttpClient();
// String strURLAdv = "http://ws.schoolzoneapp.com/vzons.asmx/getVzonsAdvertisementJsn";
String strURLUpdate = "http://ws.schoolzoneapp.com/vzons.asmx/updateAppUserLog";
String[] boomMenuItems;
int[] boomMenuDrawables;
BoomMenuButton bmb;
HashMap<String, Integer> HashMapForLocalRes ;
private String strAdsJson = null;
ModelAdv modelAdv;
private SliderLayout imageSlider;
LinearLayout tab_menu;
Button btnHome;
NavigationView navigationView;
public RecyclerView recyclerView;
private ArrayList arrayList;
public RecyclerViewAdapterBottom adapter;
HashMap<String, String> url_maps_desc;
public ImageView tool_imgBack, tool_imgShare, breaking_news;
private CircleImageView txt_float;
public TextView tool_txtTitle, txtPowered, tv_student_setting, toolShop, toolAdress;
public CircleImageView tv_student;
public RelativeLayout toolbar_layout;
private int xDelta;
private int yDelta;
private ViewGroup mainLayout;
public Menu mainMenu;
public boolean showPaymentView;
private SharedPreferences pref = null;
private ArrayList<SettingProfileItem> students;
private LoadingView load;
private IntentFilter filter = new IntentFilter();
private ConnectivityReciever connectReciever;
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
if (strAdsJson != null) outState.putString(KEY_ADS_STR, strAdsJson);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
strAdsJson = savedInstanceState.getString(KEY_ADS_STR);
}
AppLovinSdk.initializeSdk(this);
Fresco.initialize(this);
setContentView(R.layout.activity_main_screen);
initView();
Here is my MainScreenTeacher.java :
public class MainScreenTeacher extends AppCompatActivity
{
String KEY_ADS_STR = "ads_str_json";
private static AsyncHttpClient client = new AsyncHttpClient();
// String strURLAdv = "http://ws.schoolzoneapp.com/vzons.asmx/getVzonsAdvertisementJsn";
String strURLUpdate = "http://ws.schoolzoneapp.com/vzons.asmx/updateAppUserLog";
String[] boomMenuItems;
int[] boomMenuDrawables;
BoomMenuButton bmb;
HashMap<String, Integer> HashMapForLocalRes ;
private String strAdsJson = null;
ModelAdv modelAdv;
private SliderLayout imageSlider;
LinearLayout tab_menu;
Button btnHome;
NavigationView navigationView;
public RecyclerView recyclerView;
private ArrayList arrayList;
public RecyclerViewAdapterBottom adapter;
HashMap<String, String> url_maps_desc;
public ImageView tool_imgBack, tool_imgShare, breaking_news;
private CircleImageView txt_float;
public TextView tool_txtTitle, txtPowered, tv_student_setting, toolShop, toolAdress;
public CircleImageView tv_student;
public RelativeLayout toolbar_layout;
private int xDelta;
private int yDelta;
private ViewGroup mainLayout;
public Menu mainMenu;
public boolean showPaymentView;
private SharedPreferences pref = null;
private ArrayList<SettingProfileItem> students;
private LoadingView load;
private IntentFilter filter = new IntentFilter();
private ConnectivityReciever connectReciever;
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
if (strAdsJson != null) outState.putString(KEY_ADS_STR, strAdsJson);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
strAdsJson = savedInstanceState.getString(KEY_ADS_STR);
}
AppLovinSdk.initializeSdk(this);
Fresco.initialize(this);
setContentView(R.layout.activity_main_screen_teacher);
initView();
Here is ActivityFragmentHomeSecond.java
public class ActivityFragmentHomeSecond extends Fragment implements RecyclerViewAdapter.ItemListener {
private static AsyncHttpClient client = new AsyncHttpClient();
View itemView;
private LinearLayout busDirectory, absentDirectory;
private SharedPreferences pref = null;
RecyclerView recyclerView;
ArrayList arrayList;
MainScreenTeacher activity;
private List<SettingProfileItem> students;
private LoadingView load;
private ActivityFragmentHomeSecondListener activityFragmentHomeSecondListener;
private String schoolIdSelected;
private String studentlIdSelected;
private String fees_url = "";
public ActivityFragmentHomeSecond() {
// Required empty public constructor
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Util.setSelectedLang(getActivity());
}
public interface ActivityFragmentHomeSecondListener {
void onSettingsHomeClicked();
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
activityFragmentHomeSecondListener = (ActivityFragmentHomeSecondListener) getActivity();
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
activity = (MainScreenTeacher) context;
}
Please Help me Fix the Error, it will be very Much Helpful, Thanks in advance.
Upvotes: 1
Views: 62
Reputation: 124
Your activity which open FragmentHome is MainScreen ( or maybe both of them).in your onAttach,you cast your activity to ** MainScreenTeacher** and make it crash.Try to check like this if(activity instanceOf MainScreenTeacherActivity) -> cast it to MainScreenTeacherActivity else if( activity instanace of MainScreenActivity) -> cast it to MainScreenActivity
Upvotes: 1