I am trying to replace my TabActivity in my fragment based application using the Android v4 compatibility pack.
The problem I am facing is that one of the tabs in my TabActivity was PreferencesActivity, which I cannot launch from my FragmentActivity for obvious reasons.
So, since the PreferenceFragment was not included in the Android compatibility package, and I cannot run PreferenceActivity from my activity fragment, what should I do?
Open all offers.
EDIT: The exception that I get when I try to open the PreferenceActivity function from my fragment is here:
FATAL EXCEPTION: main java.lang.IllegalStateException: Did you forget to call 'public void setup(LocalActivityManager activityGroup)'? at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:652) at android.widget.TabHost.setCurrentTab(TabHost.java:326) at android.widget.TabHost$2.onTabSelectionChanged(TabHost.java:132) at android.widget.TabWidget$TabClickListener.onClick(TabWidget.java:456) at android.view.View.performClick(View.java:2485) at android.view.View$PerformClick.run(View.java:9080) at android.os.Handler.handleCallback(Handler.java:587) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:130) at android.app.ActivityThread.main(ActivityThread.java:3683) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:507) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) at dalvik.system.NativeStart.main(Native Method)
And my FragmentActivity code looks like this (most of it comes from the v4 compatibility example for tabs):
EDIT2: Example code has also been added, for clarity:
import java.util.HashMap; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.os.Environment; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentActivity; import android.support.v4.app.FragmentTransaction; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.widget.TabHost; import android.widget.TextView; public class PlayerTabActivity extends FragmentActivity { private static final String TAG = PlayerTabActivity.class.getSimpleName(); TabHost mTabHost; TabManager mTabManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.player_main); mTabHost = (TabHost) findViewById(android.R.id.tabhost); mTabHost.setup(); mTabManager = new TabManager(this, mTabHost, R.id.realtabcontent);
stork
source share