我在android工作。我想制作TabHost和Tab小部件。这是我的清单: -
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.pericent"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".HelloTabWidget" 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>
<Acivity android:name=".AlbumsActivity" android:label="@string/app_name" />
<activity android:name=".ArtistsActivity" android:label="@string/app_name" />
<Acivity android:name=".SongsActivity" android:label="@string/app_name" />
</application>
</manifest>
这是我的HelloTabWidget.java 包com.pericent;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.util.Log;
import android.widget.TabHost;
public class HelloTabWidget extends TabActivity {
private String TAG="HelloTabWidget";
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Resusable TabSpec for each tab
Intent intent1; // Reusable Intent for each tab
Intent intent2;
Intent intent3;
intent2 = new Intent().setClass(this, AlbumsActivity.class);
Log.v(TAG,"---album activity is called---");
spec = tabHost.newTabSpec("albums").setIndicator("Albums",res.getDrawable(R.drawable.ic_tab_albums)).setContent(intent2);
tabHost.addTab(spec);
// Create an Intent to launch an Activity for the tab (to be reused)
intent1 = new Intent().setClass(this, ArtistsActivity.class);
Log.v(TAG,"---artist activity is called---");
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("artists").setIndicator("Artists",res.getDrawable(R.drawable.ic_tab_artists)).setContent(intent1);
tabHost.addTab(spec);
// Do the same for the other tabs
}
}
每当我运行此项目时,都会创建一个错误“无法启动活动ComponentInfo {com.pericent / com.pericent.HelloTabWidget}:android.content.ActivityNotFoundException:无法找到显式活动类{com.pericent /com.pericent.AlbumsActivity};您是否在AndroidManifest.xml中声明了此活动?“
但是你看到我在清单文件中声明了这个类。请检查这一点,并帮助找出我所做的错误。 提前谢谢。
答案 0 :(得分:3)
将此代码替换为清单文件,然后清除项目RUN
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.pericent"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".HelloTabWidget" 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>
<acivity android:name=".AlbumsActivity" android:label="@string/app_name" />
<activity android:name=".ArtistsActivity" android:label="@string/app_name" />
<acivity android:name=".SongsActivity" android:label="@string/app_name" />
</application>
</manifest>
我认为您的代码名称“Activity
”无法识别,因此我将其设为“activity
”
答案 1 :(得分:1)
我认为问题与你的标签有关
<Acivity android:name=".AlbumsActivity" android:label="@string/app_name" />
从活动中删除上限使用小“a”