2013-11-23 5 views
0

Я разрабатываю приложение для планшетов Android. У меня есть 7-дюймовый планшет, и в моем приложении я хочу вызвать действие, когда я нажимаю на вкладку. Когда я нажимаю на вкладку, она показывает ошибку. Не могли бы вы рассказать мне, что я сделал не так в коде?Невозможно запустить активность при нажатии вкладки

Вот полный исходный код:

public class Home extends Activity { 

    private TabHost thEvent; 

    protected void onCreate(Bundle savedInstanceState) { 

     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.home); 

     thEvent = (TabHost) findViewById(android.R.id.tabhost); 
     thEvent.setup(); 

     // Tab 1 
     TabHost.TabSpec specs = thEvent.newTabSpec("tag1"); 
     specs.setContent(R.id.tab1); 
     // code for calling other activity 
     specs.setContent(new Intent(Home.this, PhotosActivity.class)); 
     specs.setIndicator("Readymade"); 

     thEvent.addTab(specs); 

     specs = thEvent.newTabSpec("tag2"); 
     specs.setContent(R.id.tab2); 
     specs.setIndicator("Speciality"); 
     thEvent.addTab(specs); 

     specs = thEvent.newTabSpec("tag3"); 
     specs.setContent(R.id.tab3); 
     specs.setIndicator("Tailormade"); 
     thEvent.addTab(specs); 

     specs = thEvent.newTabSpec("tag4"); 
     specs.setContent(R.id.tab4); 
     specs.setIndicator("Low Price"); 
     thEvent.addTab(specs); 

     specs = thEvent.newTabSpec("tag5"); 
     specs.setContent(R.id.tab5); 
     specs.setIndicator("Corporate"); 
     thEvent.addTab(specs); 

     specs = thEvent.newTabSpec("tag6"); 
     specs.setContent(R.id.tab6); 
     specs.setIndicator("Special Offers"); 
     thEvent.addTab(specs); 

     specs = thEvent.newTabSpec("tag7"); 
     specs.setContent(R.id.tab7); 
     specs.setIndicator("More"); 

     thEvent.addTab(specs); 

    } 

} 

Logcat:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.kesaritab2/com.example.kesaritab2.Home}: java.lang.IllegalStateException: Did you forget to call 'public void setup(LocalActivityManager activityGroup)'? 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2211) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261) 
    at android.app.ActivityThread.access$600(ActivityThread.java:141) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:5103) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:525) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
    at dalvik.system.NativeStart.main(Native Method) 
Caused by: java.lang.IllegalStateException: Did you forget to call 'public void setup(LocalActivityManager activityGroup)'? 
    at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:747) 
    at android.widget.TabHost.setCurrentTab(TabHost.java:413) 
    at android.widget.TabHost.addTab(TabHost.java:240) 
    at com.example.kesaritab2.Home.onCreate(Home.java:33) 
    at android.app.Activity.performCreate(Activity.java:5133) 
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175) 
    ... 11 more 

ответ

0

According to the documentation on TabHost, вы должны называть TabHost.setup (LocalActivityManager) как вы используете его в сочетании с TabHost.setContent(Intent):

Если вы используете setContent (android.content.Intent), это нужно вызвать, так как для запуска локальной активности требуется активная группа. Это делается для вас, если вы расширяете TabActivity.

Других слов, если вы просто ваша деятельность продлить TabActivity, это сделает вашу жизнь значительно проще, но учтите, что TabHost конструкция устарела в пользу использования режима вкладок действия бара.

+0

Отлично, что вы говорите мне простыми словами – user2982189

Смежные вопросы