2012-05-29 3 views
1

Я делаю вкладку макета в android. Я получаю ошибку RuntimeException в этой строке tabHost.addTab(spec);. Где я ошибаюсь?android tabs layout issue

панель активности

public class DashboardActivity extends TabActivity { 
Button btnLogout; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.dashboard); 
    btnLogout = (Button)findViewById(R.id.btnLogout); 

    Resources res = getResources(); // Resource object to get Drawables 
    TabHost tabHost = getTabHost(); // The activity TabHost 
    TabHost.TabSpec spec; // Resusable TabSpec for each tab 
    Intent intent; // Reusable Intent for each tab 

    //Artist Tab 
    intent = new Intent(this, Artists.class); 
    spec = tabHost.newTabSpec("artists").setIndicator("Artist", res.getDrawable(R.drawable.tab_icon)).setContent(intent); 
    tabHost.addTab(spec); 

    //Songs 
    intent = new Intent(this, Songs.class); 
    spec = tabHost.newTabSpec("songs").setIndicator("Songs", res.getDrawable(R.drawable.tab_icon)).setContent(intent); 
    tabHost.addTab(spec); 

    //Albums 
    intent = new Intent(this, Album.class); 
    spec = tabHost.newTabSpec("artists").setIndicator("Artist", res.getDrawable(R.drawable.tab_icon)).setContent(intent); 
    tabHost.addTab(spec); 

    //tabHost.setCurrentTab(1); 
    btnLogout.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Intent i = new Intent(getApplicationContext(), LoginActivity.class); 
      startActivity(i); 
      finish(); 
     } 
    }); 
} 

} 

вот мой файл dashboard.xml

<?xml version="1.0" encoding="utf-8"?> 
<TabHost xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/tabhost" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<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> 

<TextView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="20dip" 
     android:gravity="center" 
     android:text="WELCOME" 
     android:textSize="40dip" /> 

    <Button 
     android:id="@+id/btnLogout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="80dip" 
     android:background="@null" 
     android:text="Logout Me" 
     android:textColor="#21dbd4" 
     android:textSize="20dip" 
     android:textStyle="bold" /> 

</TabHost> 

Вот мой выход LogCat

05-29 05:02:12.556: D/dalvikvm(27476): GC_EXTERNAL_ALLOC freed 40K, 50% free 2725K/5379K, external 0K/0K, paused 121ms 
05-29 05:02:12.636: D/dalvikvm(27476): GC_EXTERNAL_ALLOC freed 7K, 50% free 2743K/5379K, external 455K/518K, paused 25ms 
05-29 05:02:12.781: D/CLIPBOARD(27476): Hide Clipboard dialog at Starting input: finished by someone else... ! 
05-29 05:02:34.136: D/dalvikvm(27476): GC_CONCURRENT freed 117K, 46% free 3054K/5639K, external 327K/661K, paused 7ms+2ms 
05-29 05:02:34.151: D/AndroidRuntime(27476): Shutting down VM 
05-29 05:02:34.151: W/dalvikvm(27476): threadid=1: thread exiting with uncaught exception (group=0x4001e578) 
05-29 05:02:34.156: E/AndroidRuntime(27476): FATAL EXCEPTION: main 
05-29 05:02:34.156: E/AndroidRuntime(27476): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.zafar.login/com.zafar.login.DashboardActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.zafar.login/com.zafar.login.Artists}; have you declared this activity in your AndroidManifest.xml? 
05-29 05:02:34.156: E/AndroidRuntime(27476): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1651) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at android.app.ActivityThread.access$1500(ActivityThread.java:117) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at android.os.Handler.dispatchMessage(Handler.java:99) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at android.os.Looper.loop(Looper.java:130) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at android.app.ActivityThread.main(ActivityThread.java:3691) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at java.lang.reflect.Method.invokeNative(Native Method) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at java.lang.reflect.Method.invoke(Method.java:507) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at dalvik.system.NativeStart.main(Native Method) 
05-29 05:02:34.156: E/AndroidRuntime(27476): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.zafar.login/com.zafar.login.Artists}; have you declared this activity in your AndroidManifest.xml? 
05-29 05:02:34.156: E/AndroidRuntime(27476): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1405) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at android.app.ActivityThread.resolveActivityInfo(ActivityThread.java:1461) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:277) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:691) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at android.widget.TabHost.setCurrentTab(TabHost.java:341) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at android.widget.TabHost.addTab(TabHost.java:226) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at com.zafar.login.DashboardActivity.onCreate(DashboardActivity.java:29) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
05-29 05:02:34.156: E/AndroidRuntime(27476): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615) 
05-29 05:02:34.156: E/AndroidRuntime(27476): ... 11 more 
05-29 05:02:40.606: I/Process(27476): Sending signal. PID: 27476 SIG: 9 
+2

Извините за повторы, но в журнале говорит _have вы объявили эту деятельность в вашей AndroidManifest.xml? _ –

ответ

0

Вам необходимо объявить Activity s в файле AndroidManifest.xml.

<activity 
    android:name="com.zafar.login.DashboardActivity" 
    android:label="@string/app_name"> 
</activity> 
0

Ваш журнал показывают ошибку

05-29 05:02:34.156: E/AndroidRuntime(27476): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.zafar.login/com.zafar.login.DashboardActivity}: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.zafar.login/com.zafar.login.Artists}; have you declared this activity in your AndroidManifest.xml?

Вы объявили Артисты Активность в Манифесте?

0

Объявить деятельность исполнителя, песни и альбома в файле манифеста. Я думаю, что этот пример, который вы пытаетесь, находится на developer.android.com, и там они не указали, чтобы включить эти действия в файл манифеста. Включите их, и ваш код должен выполняться без каких-либо исключений.

Спасибо :)