我过去总是使用Xcode所以现在我正在尝试学习Android而我正在使用Eclipse
我按照http://developer.android.com/resources/tutorials/views/hello-tabwidget.html中列出的所有步骤进行了操作,但当我实际运行LG Revolution(Froyo 2.2.1)上的代码时,我崩溃了。
我不确定如何调试,但我不知道为什么会崩溃。任何帮助将不胜感激。
我为所有3个标签使用了相同的图像(这是我做的唯一修改,但我认为它不应该崩溃)
这是我的代码
package com.oneorangetree.shit;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;
public class HelloTabWidgetActivity extends TabActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Resource object to get drawable
Resources res = getResources();
TabHost tabHost = getTabHost();
TabHost.TabSpec spec;
Intent intent;
intent = new Intent().setClass(this, ArtistsActivity.class);
spec = tabHost.newTabSpec("artists").setIndicator("Artists", res.getDrawable(R.drawable.ic_tab_artists)).setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, AlbumsActivity.class);
spec = tabHost.newTabSpec("albums").setIndicator("Albums", res.getDrawable(R.drawable.ic_tab_artists)).setContent(intent);
tabHost.addTab(spec);
intent = new Intent().setClass(this, SongsActivity.class);
spec = tabHost.newTabSpec("songs").setIndicator("Songs", res.getDrawable(R.drawable.ic_tab_artists)).setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(2);
}
}
这是我的清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.oneorangetree.shit"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="8" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".HelloTabWidgetActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
答案 0 :(得分:1)
狂野猜测:您是否已将所有活动添加到清单中?一项活动等于清单中的一项提及。
创建项目时,默认情况下会将主要活动添加到此文件中,以便系统知道可以启动主要活动。现在,每次在项目中添加新活动时,都必须在清单中添加此活动:
<activity android:name=".HelloTabWidget" android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
如果不是通过单击文件的左边距添加一些断点,则单击调试按钮。最后,打开调试透视图,然后使用F8在断点之间导航。
希望它有所帮助,也在那里:)。
答案 1 :(得分:1)
查看http://code.google.com/p/android/issues/detail?id=4183中的信息,并在原始问题中按Ted
实施修正 - 以下是清单,但也有其他错误:
<activity android:name=".AlbumsActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
</activity>
<activity android:name=".ArtistsActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
</activity>
<activity android:name=".SongsActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
</activity>