2013-07-02 3 views
1

Я хочу две вкладки в моем приложении, которые находятся в другом действии, которые я получаю из своего основного действия с одной кнопки.tabHost в android дает К сожалению, приложение остановило ошибку

Моя активность, которая будет контролировать вкладок имеет код, как показано ниже

public class Myclass extends TabActivity 


{ 


    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.myclass); 


    TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost); 

     TabSpec firstSpec = tabHost.newTabSpec("First"); 
     firstSpec.setIndicator("first Tab",null); 
     Intent firstintent = new Intent(this,Tab1.class); 
     firstSpec.setContent(firstintent); 


     TabSpec secondSpec = tabHost.newTabSpec("Second"); 
     secondSpec.setIndicator("first Tab",null); 
     Intent secondintent = new Intent(this,Tab2.class); 
     secondSpec.setContent(secondintent); 


     tabHost.addTab(firstSpec); 
     tabHost.addTab(secondSpec); 
    } 
} 





And the XML which has the tabHost content has the code 

    <?xml version="1.0" encoding="utf-8"?> 


    <TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:id="@+id/tabHost" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentLeft="true"> 

     <LinearLayout 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       android:orientation="vertical"> 

      <TabWidget 
        android:id="@android:id/tabs" 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"> 
      </TabWidget> 

      <FrameLayout 
        android:id="@android:id/tabcontent" 
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"> 


      </FrameLayout> 
     </LinearLayout> 
    </TabHost> 


So the app is compiling and loading up fine in my device and able to access other activites. But when I try to access the button which should display the activity above mentioned "Myclass" activity. The application exits and I get a screen displaying "Unfortunately,app has stopped". 


I have entered the activities in the AndroidManifest.xml also. 


The TabActivity shows a cancel mark on the word and says 'android.app.TabActivity' is deprecated. 

What does this mean exactly? 




Can any one suggest me what is going wrong with the program. 













I changed the code as given in the link http://developer.android.com/reference/android/app/TabActivity.html to the code below             Code 

    public class MyClass extends FragmentActivity 


    { 

     private FragmentTabHost mTabHost; 

     @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 

      setContentView(R.layout.myclass); 
      mTabHost = (FragmentTabHost)findViewById(android.R.id.tabhost); 
      mTabHost.setup(this, getSupportFragmentManager(), R.id.realtabcontent); 

      mTabHost.addTab(mTabHost.newTabSpec("simple").setIndicator("Simple"), 
        Tab1.class, null); 
      mTabHost.addTab(mTabHost.newTabSpec("contacts").setIndicator("Contacts"), 
        Tab2.class, null); 
     } 
    } 

И код XML для

<android.support.v4.app.FragmentTabHost 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@android:id/tabhost" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

    <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

     <TabWidget 
       android:id="@android:id/tabs" 
       android:orientation="horizontal" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="0"/> 

     <FrameLayout 
       android:id="@android:id/tabcontent" 
       android:layout_width="0dp" 
       android:layout_height="0dp" 
       android:layout_weight="0"/> 

     <FrameLayout 
       android:id="@+id/realtabcontent" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="1"/> 

    </LinearLayout> 
</android.support.v4.app.FragmentTabHost> 

Но до сих пор никакого эффекта, та же проблема применения, выходящего на щелчки для запуска активности Myclass продолжается.

Может ли кто-нибудь предложить решение?

ответ

2

вы должны изменить

TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost); 

с

TabHost tabHost = (TabHost)findViewById(R.id.tabHost); 
+0

+1 хорошая пара глаз там...:) – NetStarter

0

попробовать это:

внести изменения в вашем XML

Change Tab идентификатор хоста

андроид: идентификатор = "@ + идентификатор/tabHost" к андроид: идентификатор = "@ андроида: ид/tabhost"

это должно быть так:

<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:id="@android:id/tabhost 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true"> 

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

  • Нет связанных вопросов^_^