2016-08-20 5 views
1

У меня есть следующие виды деятельностиНевозможно начать деятельность ComponentInfo - java.lang.IllegalStateException

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main_activity_layout); 

     TabHost mainTabHost = (TabHost) findViewById(R.id.mainTabHost); 
     mainTabHost.setup(); 

     mainTabHost.addTab(mainTabHost.newTabSpec("Tab 1").setIndicator("", ContextCompat.getDrawable(this, R.drawable.d1)).setContent(new Intent(this, Activity1.class))); 

     mainTabHost.addTab(mainTabHost.newTabSpec("Tab 2").setIndicator("", ContextCompat.getDrawable(this, R.drawable.d2)).setContent(new Intent(this, Activity2.class))); 

     mainTabHost.addTab(mainTabHost.newTabSpec("Tab 3").setIndicator("", ContextCompat.getDrawable(this, R.drawable.d3)).setContent(new Intent(this, Activity3.class))); 
    } 
} 

И это XML

<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@id/mainTabHost" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingLeft="@dimen/activityHorizontalMargin" 
    android:paddingRight="@dimen/activityHorizontalMargin" 
    android:paddingTop="@dimen/activityVerticalMargin" 
    tools:context=".MainActivity"> 

    <RelativeLayout 
     android:id="@id/mainHomeLayout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical"> 

     <FrameLayout 
      android:id="@android:id/tabcontent" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_alignParentTop="true" /> 

     <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" /> 

    </RelativeLayout> 

</TabHost> 

Существует другая деятельность, в которой нажав кнопку запускает этот Мероприятия. Однако деятельность не запускается и я получаю следующее сообщение об ошибке:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nirvanapass/com.nirvanapass.MainActivity}: java.lang.IllegalStateException: Did you forget to call 'public void setup(LocalActivityManager activityGroup)'? 

Я искал в Интернете - но то, что решения, я мог бы найти применение ActivityGroup или TabActivity - оба из которых являются устаревшими. Как решить эту ошибку и решить эту проблему?

+0

http://stackoverflow.com/questions/3272500/android-exception- –

+0

Это предложение, которое вы забыли до звонка-публично-пустое-setup-localactivitymanag ests 'ActivityGroup', который устарел. Ищете лучший способ, даже если это означает, что мне нужно переписать мой код. – pratnala

+0

Хорошо, тогда я бы посмотрел в ViewPager. –

ответ

1

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

Большинство современных реализаций табуляции используют ViewPager с каким-то индикатором с вкладками. PagerTabStrip и TabLayout находятся в Android SDK, а в Android Arsenal перечислены многие другие индикаторы табуляции в their ViewPager category.

Если вы действительно хотите ретро-стиль TabWidget, используйте либо FragmentTabHost, либо используйте TabHost, где вкладки являются видами.

Здесь приведены примеры приложений для:

+0

Фантастический. Я попробую это и вернусь (через несколько дней). Благодаря! – pratnala

+0

Отметьте это на данный момент, как кажется, это правильно – pratnala

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