I am using the listview add/remove footer for listview cross app in android version 4.3?

android, android-arrayadapter, android-listview

Solution

This is probably caused by calling `setAdapter()` on the ListView before calling `setFooterView()`. This was necessary in all versions of Android prior to 4.4

Actually, I didn't know this restriction had been relaxed for KitKat until I saw this question... :)

In the sources of `addFooterView()` for API level 15:

/*
 * NOTE: Call this before calling setAdapter. This is so ListView can wrap
 * the supplied cursor with one that will also account for header and footer
 * views.

Meanwhile, it KitKat, this restriction was relaxed:

/*
 * Note: When first introduced, this method could only be called before
 * setting the adapter with {@link #setAdapter(ListAdapter)}. Starting with
 * {@link android.os.Build.VERSION_CODES#KITKAT}, this method may be
 * called at any time.

If you want to be compatible with pre-4.4, you need to respect the calling order, i.e.

- `addFooterView(footer);`

- `setAdapter(adapter);`

- `removeFooterView(footer);`

Problem

I used to the `ListView` add the footer view and also remove footer its worked fine in android version 4.4 above but problem in android version 4.3 and below I am using the following code for adding the footer ``` listfortestmyfeed.addFooterView(footerView); ``` and remove footer following code ``` listfortestmyfeed.removeFooterView(footerView); ``` remove footer showing class cast exception in my logcat ``` 07-11 20:07:49.665: E/ACRA(22818): com.sample.activities fatal error : com.sample.adapters.MyfeedAdapter cannot be cast to android.widget.HeaderViewListAdapter 07-11 20:07:49.665: E/ACRA(22818): java.lang.ClassCastException: com.sample.adapters.MyfeedAdapter cannot be cast to android.widget.HeaderViewListAdapter 07-11 20:07:49.665: E/ACRA(22818): at android.widget.ListView.removeFooterView(ListView.java:390) 07-11 20:07:49.665: E/ACRA(22818): at com.sample.fragments.MyfeedNewFragment$FollowingBloopsdoinback.onPostExecute(MyfeedNewFragment.java:172) 07-11 20:07:49.665: E/ACRA(22818): at com.sample.fragments.MyfeedNewFragment$FollowingBloopsdoinback.onPostExecute(MyfeedNewFragment.java:1) 07-11 20:07:49.665: E/ACRA(22818): at android.os.AsyncTask.finish(AsyncTask.java:631) 07-11 20:07:49.665: E/ACRA(22818): at android.os.AsyncTask.access$600(AsyncTask.java:177) 07-11 20:07:49.665: E/ACRA(22818): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644) 07-11 20:07:49.665: E/ACRA(22818): at android.os.Handler.dispatchMessage(Handler.java:99) 07-11 20:07:49.665: E/ACRA(22818): at android.os.Looper.loop(Looper.java:137) 07-11 20:07:49.665: E/ACRA(22818): at android.app.ActivityThread.main(ActivityThread.java:5103) 07-11 20:07:49.665: E/ACRA(22818): at java.lang.reflect.Method.invokeNative(Native Method) 07-11 20:07:49.665: E/ACRA(22818): at java.lang.reflect.Method.invoke(Method.java:525) 07-11 20:07:49.665: E/ACRA(22818): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 07-11 20:07:49.665: E/ACRA(22818): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 07-11 20:07:49.665: E/ACRA(22818): at dalvik.system.NativeStart.main(Native Method) ``` i didn't findout the mistake please tell me anyone know advance thanks

Original source