Я делаю компоновку вкладок в android. Я получаю ошибку RuntimeException в этой строке tabHost.addTab(spec);
, Где я ошибаюсь?
деятельность приборной панели
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
Вам нужно объявить свою Activity
в файле AndroidManifest.xml
.
<activity
android:name="com.zafar.login.DashboardActivity"
android:label="@string/app_name">
</activity>
Объявить действие исполнителя, песни и альбома в файле манифеста. Я думаю, что этот пример, который вы пытаетесь, находится на developer.android.com, и там они не указали, чтобы включить эти действия в файл манифеста. Включите их, и ваш код должен выполняться без каких-либо исключений.
Спасибо :)
В вашем журнале указывается ошибка
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?
Вы заявили о деятельности артистов в манифесте?