0

我有这个 android 应用程序,我创建了一个选项卡式布局并有 2 个选项卡。问题是,当我将 .apk 文件安装到手机时,它会创建三个图标,一个包含第一个选项卡的内容,另一个包含第二个选项卡的内容,最后一个包含同一应用程序中的两个选项卡。

怎么会这样?这是我的主要java类:

import android.app.TabActivity;

import android.content.Intent;

import android.content.res.Resources;

import android.os.Bundle;

import android.widget.TabHost;



@SuppressWarnings("deprecation")
public class MainActivity extends TabActivity {

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        @SuppressWarnings("unused")
        Resources res = getResources(); // Resource object to get Drawables   

        TabHost tabHost = getTabHost(); // The activity TabHost   

        TabHost.TabSpec spec;  // Reusable TabSpec for each tab  

        Intent intent; // Reusable Intent for each tab   

        // Create an Intent to launch an Activity for the tab (to be reused)   

        intent = new Intent().setClass(this, Ditari.class);   //Initialize a  

        spec = tabHost.newTabSpec("ditari").setIndicator("Ditari" 
                     ).setContent(intent);   

        tabHost.addTab(spec);    // Do the same for the other tabs   

        intent = new Intent().setClass(this, Postime.class);   

        spec = tabHost.newTabSpec("postime").setIndicator("Postime").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.example.ditari"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="17" />

    <uses-permission android:name="android.permission.INTERNET" />

    <application android:label="@string/app_name" >
        <activity
            android:name=".MainActivity"
            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>
        <activity
            android:name=".Ditari"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity
            android:name=".Postime"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
4

1 回答 1

1

从 Ditari 和 Posttime 中删除意图过滤器

像这样的东西

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="17" />

<uses-permission android:name="android.permission.INTERNET" />

<application android:label="@string/app_name" >
    <activity
        android:name=".MainActivity"
        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>
    <activity
        android:name=".Ditari"
        android:label="@string/app_name" >
    </activity>
    <activity
        android:name=".Postime"
        android:label="@string/app_name" >
    </activity>
</application>

三个不同图标的原因是您将应用程序的每个活动都指定为 LAUNCHER 活动。

于 2013-05-15T10:28:21.630 回答