I am implementing Actionbar with swipe feature on tabs first time. I am running on honeycomb OS (Api level 11). Hence i have to use support compatibility library v13 to use view pager and other components used to build swipe mechanism like FragmentPagerAdapter.
I am using tutorial on developer.android to build this. Here is the link.
However i am getting a strange issue of no such method found like attach and detach.
Let me post the full track trace
09-04 13:07:42.560: E/AndroidRuntime(774): java.lang.NoSuchMethodError: android.app.FragmentTransaction.attach
09-04 13:07:42.560: E/AndroidRuntime(774): at android.support.v13.app.FragmentPagerAdapter.instantiateItem(FragmentPagerAdapter.java:99)
09-04 13:07:42.560: E/AndroidRuntime(774): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:832)
09-04 13:07:42.560: E/AndroidRuntime(774): at android.support.v4.view.ViewPager.populate(ViewPager.java:1016)
09-04 13:07:42.560: E/AndroidRuntime(774): at android.support.v4.view.ViewPager.populate(ViewPager.java:914)
09-04 13:07:42.560: E/AndroidRuntime(774): at android.support.v4.view.ViewPager$3.run(ViewPager.java:244)
09-04 13:07:42.560: E/AndroidRuntime(774): at android.os.Handler.handleCallback(Handler.java:587)
09-04 13:07:42.560: E/AndroidRuntime(774): at android.os.Handler.dispatchMessage(Handler.java:92)
09-04 13:07:42.560: E/AndroidRuntime(774): at android.os.Looper.loop(Looper.java:126)
09-04 13:07:42.560: E/AndroidRuntime(774): at android.app.ActivityThread.main(ActivityThread.java:3997)
09-04 13:07:42.560: E/AndroidRuntime(774): at java.lang.reflect.Method.invokeNative(Native Method)
09-04 13:07:42.560: E/AndroidRuntime(774): at java.lang.reflect.Method.invoke(Method.java:491)
09-04 13:07:42.560: E/AndroidRuntime(774): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
09-04 13:07:42.560: E/AndroidRuntime(774): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
09-04 13:07:42.560: E/AndroidRuntime(774): at dalvik.system.NativeStart.main(Native Method)
I have also gone through same link that represent same issue but it didnt solve my problem. this is the link to same issue
I am not using ActionbarSherloc as i am running on Api level 11.
I am posting my Adapter class and TabListener in case you want to give a look.
public class MyPagerAdapter extends FragmentPagerAdapter{
Fragment mFragment;
public MyPagerAdapter(FragmentManager fm) {
super(fm);
// TODO Auto-generated constructor stub
}
@Override
public android.app.Fragment getItem(int position) {
// TODO Auto-generated method stub
switch (position) {
case 0:
mFragment = (PatientForms)new PatientForms();
return mFragment;
case 1:
mFragment = (Vitals)new Vitals();
return mFragment;
case 2:
mFragment = (ChartsActivity)new ChartsActivity();
return mFragment;
case 3:
mFragment = (Note)new Note();
return mFragment;
default:
return null;
}
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return 4;
}
@Override
public void destroyItem(ViewGroup container, int position,
Object object) {
// TODO Auto-generated method stub
}
}
private class MyTabListener implements ActionBar.TabListener
{
private Fragment mFragment;
private final Activity mActivity;
private final String mFragName;
public MyTabListener( Activity activity, String fragName )
{
mActivity = activity;
mFragName = fragName;
}
@Override
public void onTabSelected( Tab tab, FragmentTransaction ft )
{
Log.i(TAG, "tab position to set is "+tab.getPosition());
pager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabReselected(Tab tab, android.app.FragmentTransaction ft) {
// TODO Auto-generated method stub
}
@Override
public void onTabUnselected(Tab tab, android.app.FragmentTransaction ft) {
// TODO Auto-generated method stub
// ft.remove( mFragment );
// mFragment = null;
}
}