Frage

I am developing an application.

Which needs that, the activity change according to the Tab change. I had used the following code and created two activities.

StoryAlbum1.java StoryAlbum2.java

I define both at the manifest.xml file also.

But I got Run Time error.

My Code is:

ListView list_stories;
TabHost tab_stories;
@Override
        protected void onCreate(Bundle savedInstanceState) 
        {
            requestWindowFeature(Window.FEATURE_NO_TITLE);
            super.onCreate(savedInstanceState);
            setContentView(R.layout.story_list);

            tab_stories=(TabHost)findViewById(R.id.tabhoststories);
            tab_stories.setup();

            setupTab1(new TextView(this), "Album 1");
            setupTab2(new TextView(this), "Album 2");
        }
        private void setupTab1(final View view, final String tag) 
        {

            View tabview = createTabView(tab_stories.getContext(), tag);

            Intent intent1 = new Intent().setClass(this, StoryAlbum1.class);
            TabSpec tab1 = tab_stories.newTabSpec(tag).setIndicator(tabview).setContent(intent1);

            tab_stories.addTab(tab1);
        }
        private void setupTab2(final View view, final String tag) 
        {

            View tabview = createTabView(tab_stories.getContext(), tag);

            Intent intent2 = new Intent().setClass(this, StoryAlbum2.class);
            TabSpec tab2 = tab_stories.newTabSpec(tag).setIndicator(tabview).setContent(intent2);

            tab_stories.addTab(tab2);
        }
private static View createTabView(final Context context, final String text) 
        {
            View view = LayoutInflater.from(context).inflate(R.layout.tabs_text, null);
            TextView tv = (TextView) view.findViewById(R.id.tabsText);
            tv.setText(text);
            return view;
        }
}

Please Help me to solve that error!

My Error Log is:

02-22 06:03:58.247: E/AndroidRuntime(1191): FATAL EXCEPTION: main
02-22 06:03:58.247: E/AndroidRuntime(1191): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.videostreaming/com.example.videostreaming.Story_List}: java.lang.IllegalStateException: Did you forget to call 'public void setup(LocalActivityManager activityGroup)'?
02-22 06:03:58.247: E/AndroidRuntime(1191):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at android.app.ActivityThread.access$600(ActivityThread.java:141)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at android.os.Looper.loop(Looper.java:137)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at android.app.ActivityThread.main(ActivityThread.java:5039)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at java.lang.reflect.Method.invokeNative(Native Method)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at java.lang.reflect.Method.invoke(Method.java:511)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at dalvik.system.NativeStart.main(Native Method)
02-22 06:03:58.247: E/AndroidRuntime(1191): Caused by: java.lang.IllegalStateException: Did you forget to call 'public void setup(LocalActivityManager activityGroup)'?
02-22 06:03:58.247: E/AndroidRuntime(1191):     at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:747)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at android.widget.TabHost.setCurrentTab(TabHost.java:413)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at android.widget.TabHost.addTab(TabHost.java:240)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at com.example.videostreaming.Story_List.setupTab1(Story_List.java:55)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at com.example.videostreaming.Story_List.onCreate(Story_List.java:38)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at android.app.Activity.performCreate(Activity.java:5104)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
02-22 06:03:58.247: E/AndroidRuntime(1191):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)

Thank you.

War es hilfreich?

Lösung

you need change MainActivity's base class from Activity to ActivityGroup, as follows:

public class MainActivity extends ActivityGroup {
...
}

ActivityGroup will take care of an instance of LocalActivityManager. So you don't need to create it. After the base class is changed, just call getLocalActivityManager() function defined in the base class to get that instance. Call tabHost's setup function like this:

 tabHost.setup(this.getLocalActivityManager());
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top