tabhost的Tab(活动)不显示任何内容

时间:2013-11-24 18:33:03

标签: android android-listview android-activity runtime-error android-tabhost

该应用程序有5个选项卡,第一个选项卡在其布局中只有一个TextView,其他选项卡与ListView具有相同的布局,但它在选项卡中没有显示任何内容,只有白色背景。

这里有一些日志和代码:

控制台:

ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=tbf.tb.simulador1o1/.MainActivity }
ActivityManager: Warning: Activity not started, its current task has been brought to the front

logcat的:

11-24 18:13:11.211: D/dalvikvm(1790): GC_FOR_ALLOC freed 392K, 10% free 9501K/10476K, paused 97ms, total 121ms
11-24 18:13:11.341: D/dalvikvm(1790): GC_FOR_ALLOC freed 6863K, 68% free 3848K/11688K, paused 41ms, total 42ms
11-24 18:13:11.341: I/dalvikvm-heap(1790): Grow heap (frag case) to 4.559MB for 696976-byte allocation
11-24 18:13:11.471: D/dalvikvm(1790): GC_FOR_ALLOC freed <1K, 62% free 4528K/11688K, paused 119ms, total 119ms
11-24 18:13:11.551: D/dalvikvm(1790): GC_CONCURRENT freed 0K, 62% free 4528K/11688K, paused 16ms+17ms, total 87ms
11-24 18:13:11.672: D/dalvikvm(1790): GC_FOR_ALLOC freed <1K, 62% free 4528K/11688K, paused 46ms, total 46ms
11-24 18:13:11.672: I/dalvikvm-heap(1790): Grow heap (frag case) to 5.739MB for 1238176-byte allocation
11-24 18:13:11.751: D/dalvikvm(1790): GC_CONCURRENT freed 0K, 51% free 5737K/11688K, paused 10ms+16ms, total 81ms
11-24 18:13:11.921: D/dalvikvm(1790): GC_FOR_ALLOC freed 1032K, 52% free 5683K/11688K, paused 39ms, total 41ms
11-24 18:13:12.111: D/dalvikvm(1790): GC_FOR_ALLOC freed 352K, 47% free 6309K/11688K, paused 38ms, total 39ms
11-24 18:13:12.231: D/dalvikvm(1790): GC_FOR_ALLOC freed 352K, 41% free 6934K/11688K, paused 38ms, total 39ms
11-24 18:13:12.482: D/dalvikvm(1790): GC_FOR_ALLOC freed 352K, 33% free 7913K/11688K, paused 41ms, total 42ms
11-24 18:13:36.001: I/Choreographer(1790): Skipped 57 frames!  The application may be doing too much work on its main thread.

MainActivity布局:

<?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="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0"/>

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="0dp"
            android:layout_height="0dp"
            android:layout_weight="0"/>

        <FrameLayout
            android:id="@+id/realtabcontent"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1"/>

    </LinearLayout>
</TabHost>

MainActivity类:

public class MainActivity extends TabActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // TabHost tabHost = getTabHost();
        TabHost tabHost = (TabHost)findViewById(android.R.id.tabhost);

        // Setting tabs
        TabSpec tab1Spec = tabHost.newTabSpec("shopping");
        tab1Spec.setIndicator("", getResources().getDrawable(R.drawable.shopping_selector));
        tab1Spec.setContent(new Intent(this, Tab_1.class));

        TabSpec tab2Spec = tabHost.newTabSpec("combo");
        tab2Spec.setIndicator("", getResources().getDrawable(R.drawable.combo_selector));
        tab2Spec.setContent(new Intent(this, Tab_2.class));

        TabSpec tab3Spec = tabHost.newTabSpec("sandwich");
        tab3Spec.setIndicator("", getResources().getDrawable(R.drawable.sandwich_selector));
        tab3Spec.setContent(new Intent(this, Tab_3.class));

        TabSpec tab4Spec = tabHost.newTabSpec("dog_chip_natural");
        tab4Spec.setIndicator("", getResources().getDrawable(R.drawable.dogchipnatural_selector));
        tab4Spec.setContent(new Intent(this, Tab_4.class));

        TabSpec tab5Spec = tabHost.newTabSpec("drink_acai_icecream");
        tab5Spec.setIndicator("", getResources().getDrawable(R.drawable.drinkacaiicecream_selector));
        tab5Spec.setContent(new Intent(this, Tab_5.class));

        // Adding all TabSpec to TabHost
        tabHost.addTab(tab1Spec);
        tabHost.addTab(tab2Spec);
        tabHost.addTab(tab3Spec);
        tabHost.addTab(tab4Spec);
        tabHost.addTab(tab5Spec);
    }
}

Tab_2布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent">

    <ListView android:id="@android:id/list"
        android:layout_width="fill_parent" 
        android:layout_height="fill_parent"
        android:layout_weight="0" >
    </ListView>
</LinearLayout>

Tab_2类:

public class Tab_2 extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tab);

        // Create Parser for raw/list_combo_offer.xml
        ItemParser itemParser = new ItemParser();
        InputStream inputStream = getResources().openRawResource(
                R.raw.list_tab2);

        // Parse the inputstream
        itemParser.parse(inputStream);

        // Get items
        List<Item> itemList = itemParser.getList();

        // Create a customized ArrayAdapter
        ItemArrayAdapter adapter = new ItemArrayAdapter(
                this, //getApplicationContext(), 
                R.layout.item_list, 
                itemList);

        ListView lv = (ListView) findViewById(android.R.id.list);
        lv.setAdapter(adapter);
        lv.setOnItemClickListener(new OnItemClickListener()
        {
             @Override
             public void onItemClick(AdapterView<?> a, View v, int position, long id) 
             {
                 Intent intent = new Intent(Tab_2.this, ItemActivity.class);
                 intent.putExtra("position", (int) position);
                 startActivity(intent);
             }
        });

    }
}

AndroidManifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="tbf.tb.simulador1o1"
    android:versionCode="1"
    android:versionName="1.0" >

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity
            android:name="tbf.tb.simulador1o1.MainActivity"
            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="tbf.tb.simulador1o1.Tab_1"
            android:label="@string/tab_1"
            android:parentActivityName="tbf.tb.simulador1o1.MainActivity" >
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="tbf.tb.simulador1o1.MainActivity" />
        </activity>

        <activity
            android:name="tbf.tb.simulador1o1.Tab_2"
            android:label="@string/tab_2"
            android:parentActivityName="tbf.tb.simulador1o1.MainActivity" >
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="tbf.tb.simulador1o1.MainActivity" />
        </activity>

        <activity
            android:name="tbf.tb.simulador1o1.Tab_3"
            android:label="@string/tab_3"
            android:parentActivityName="tbf.tb.simulador1o1.MainActivity" >
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="tbf.tb.simulador1o1.MainActivity" />
        </activity>

        <activity
            android:name="tbf.tb.simulador1o1.Tab_4"
            android:label="@string/tab_4"
            android:parentActivityName="tbf.tb.simulador1o1.MainActivity" >
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="tbf.tb.simulador1o1.MainActivity" />
        </activity>

        <activity
            android:name="tbf.tb.simulador1o1.Tab_5"
            android:label="@string/tab_5"
            android:parentActivityName="tbf.tb.simulador1o1.MainActivity" >
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value="tbf.tb.simulador1o1.MainActivity" />
        </activity>

    </application>

</manifest>

1 个答案:

答案 0 :(得分:0)

修复

MainActivity布局:

<TabHost
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@android:id/tabhost"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="fill_parent"
            android:layout_height="0dip"
            android:layout_weight="1"/>

        <TabWidget
            android:id="@android:id/tabs"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="0"
            android:layout_marginBottom="-4dp"/>

    </LinearLayout>
</TabHost>

AndroidManifest:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="tbf.tb.simulador1o1"
    android:versionCode="1"
    android:versionName="1.0" >

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

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >

        <activity
            android:name="tbf.tb.simulador1o1.MainActivity"
            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="tbf.tb.simulador1o1.Tab_1"/>
        <activity android:name="tbf.tb.simulador1o1.Tab_2"/>
        <activity android:name="tbf.tb.simulador1o1.Tab_3"/>
        <activity android:name="tbf.tb.simulador1o1.Tab_4"/>
        <activity android:name="tbf.tb.simulador1o1.Tab_5"/>
        <activity android:name="tbf.tb.simulador1o1.ItemActivity"/>

    </application>

</manifest>