The option from Valentin in stackoverflow doesn't work well with the
*compatibility
library*. This is what i did to make it MapActivity work with Fragments
using the compatibility library (it is not the best solution, but it seems
to work so far):
1. Use the source of the compatibililty library (just copy android/* into
your project's source dir).
2. Rename (don't refactor!) FragmentActivity.java into
AFragmentActivity.java (rename file and class-name).
3. Create a new java file FragmentActivity.java. Make it an interface
(see below).
4. Have AFragmentActivity implement FragmentActivity.
*public class AFragmentActivity extends Activity implements
FragmentActivity ... *
1. Fix the compiler errors that will happen.
2. instead of .mFragments, use getFragments()
3. instead of mHandler, use getHandler()
4. add casts that will cast FragmentActivity into Context or Activity
where necessary.
5. etc.
5. After all compiler errors have been fixed, make a copy of
AFragmentActivity.java and call it AFragmentMapActivity.java and have it
extend MapActivity
*public abstract class AFragmentMapActivity extends MapActivity
implements FragmentActivity ...*
Now you can have a MapView in a regular fragment as long as that fragment is
hosted inside a AFragmentMapActivity.
Source of the FragmentActivity interface (without the imports and such):
*package android.support.v4.app;*
*...*
*...*
*public interface FragmentActivity {
public ClassLoader getClassLoader();
public View findViewById(int mViewId);
public Context getApplicationContext();
public Resources getResources();
public Window getWindow();
public LayoutInflater getLayoutInflater();
public boolean isFinishing();
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo
menuInfo);*
**
* public FragmentManagerImpl getFragments();
public Handler getHandler();*
**
* public LoaderManagerImpl getLoaderManager(int mIndex, boolean
mLoadersStarted, boolean b);
public CharSequence getText(int mBreadCrumbTitleRes);
public void invalidateFragmentIndex(int mIndex);
public void onAttachFragment(Fragment f);
public void startActivityFromFragment(Fragment fragment, Intent intent, int
i);
public void supportInvalidateOptionsMenu();
}*
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en