3

我在 res>layout forlder 中创建了一个名为 tabs.xml 的新 xml 文件。它有以下代码:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TabHost
        android:id="@android:id/tabhost"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

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

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

            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >

                <RelativeLayout
                    android:id="@+id/Network"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" >

                    <TextView
                        android:id="@+id/textView1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_alignParentTop="true"
                        android:text="Channel Type:"
                        android:textAppearance="?android:attr/textAppearanceMedium" />

                    <RadioButton
                        android:id="@+id/urbanButton1"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:layout_alignParentLeft="true"
                        android:layout_below="@+id/textView1"
                        android:text="Urban" />

                     <RadioButton
                         android:id="@+id/suburbanButton2"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_alignBaseline="@+id/urbanButton1"
                         android:layout_alignBottom="@+id/urbanButton1"
                         android:layout_centerHorizontal="true"
                         android:text="SubUrban" />

                     <RadioButton
                         android:id="@+id/ruralButton3"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_alignBaseline="@+id/suburbanButton2"
                         android:layout_alignBottom="@+id/suburbanButton2"
                         android:layout_alignParentRight="true"
                         android:layout_marginRight="15dp"
                         android:text="Rural" />

                     <TextView
                         android:id="@+id/textView2"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_below="@+id/urbanButton1"
                         android:text="Characteristics of Channel:"
                         android:textAppearance="?android:attr/textAppearanceMedium" />

                     <TextView
                         android:id="@+id/textView3"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_alignParentLeft="true"
                         android:layout_alignRight="@+id/suburbanButton2"
                         android:layout_below="@+id/textView2"
                         android:text="Medium Text"
                         android:textAppearance="?android:attr/textAppearanceMedium" />

                     <CheckBox
                         android:id="@+id/checkBox1"
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:layout_below="@+id/textView3"
                         android:layout_toLeftOf="@+id/ruralButton3"
                         android:text="Manual Override" />
                 </RelativeLayout>

                <RelativeLayout
                    android:id="@+id/power"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" >
                </RelativeLayout>

                <RelativeLayout
                    android:id="@+id/Connectivity"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" >
                </RelativeLayout>

                <RelativeLayout
                    android:id="@+id/Offline"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent" >
                </RelativeLayout>
            </FrameLayout>
        </LinearLayout>`enter code here`
    </TabHost>
</LinearLayout>

现在我在同一个文件夹中也有一个 andoid activity_main.xml,我没有添加任何内容。我还创建了一个名为 Tabs.Java 的 java 文件,并将其放在 src>com.example.qosmetre>Tabs.Java 下的 src 文件夹中,代码如下

package com.example.qosmetre;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class Tabs extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tabs);
    }

}

现在我的问题是,当我在终端或调试模式下运行我的应用程序时,为什么除了空白屏幕什么都没有显示?就像我希望标签首先显示在它们下面的所有东西,如代码所示。另外,我将如何导入一个库以用于我的应用程序中的散点图数据?

我需要知道在哪里以及在什么文件中放置什么代码,因为我只是一个初学者而且我不太了解,所以我需要很大的指导。

再次提前感谢。

我的 android Manifest.xml 有以下代码:

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

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

  <application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name="com.example.qosmetre.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=".MyTabsActivity" 
        </activity> 
  </application>`enter code here`

</manifest>
4

1 回答 1

0

详情请参考TabActivity Android API

已弃用:

TabActivity自 API 级别 13 起已弃用

对于针对 HONEYCOMB 或更高版本开发的应用程序,通常使用新的 ActionBar.newTab() 和相关 API 在 UI 中显示选项卡,以将选项卡放置在其操作栏区域内。

截屏:

截屏

tabs.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" >

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

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

        <FrameLayout
            android:id="@android:id/tabcontent"
            android:layout_width="match_parent"
            android:layout_height="match_parent" >

            <RelativeLayout
                android:id="@+id/Network"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >

                <TextView
                    android:id="@+id/textView1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentTop="true"
                    android:text="Channel Type:"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <RadioButton
                    android:id="@+id/urbanButton1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_below="@+id/textView1"
                    android:text="Urban" />

                <RadioButton
                    android:id="@+id/suburbanButton2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBaseline="@+id/urbanButton1"
                    android:layout_alignBottom="@+id/urbanButton1"
                    android:layout_centerHorizontal="true"
                    android:text="SubUrban" />

                <RadioButton
                    android:id="@+id/ruralButton3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignBaseline="@+id/suburbanButton2"
                    android:layout_alignBottom="@+id/suburbanButton2"
                    android:layout_alignParentRight="true"
                    android:layout_marginRight="15dp"
                    android:text="Rural" />

                <TextView
                    android:id="@+id/textView2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/urbanButton1"
                    android:text="Characteristics of Channel:"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <TextView
                    android:id="@+id/textView3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:layout_alignRight="@+id/suburbanButton2"
                    android:layout_below="@+id/textView2"
                    android:text="Medium Text"
                    android:textAppearance="?android:attr/textAppearanceMedium" />

                <CheckBox
                    android:id="@+id/checkBox1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_below="@+id/textView3"
                    android:layout_toLeftOf="@+id/ruralButton3"
                    android:text="Manual Override" />
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/Power"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/Connectivity"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >
            </RelativeLayout>

            <RelativeLayout
                android:id="@+id/Offline"
                android:layout_width="match_parent"
                android:layout_height="match_parent" >
            </RelativeLayout>
        </FrameLayout>
    </LinearLayout>

</TabHost>

MyTabsActivity.java

package com.example.qosmetre;

import android.app.TabActivity;
import android.os.Bundle;
import android.widget.TabHost;

public class Tabs extends TabActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.tabs);

        // we start adding the tabs programmatically
        TabHost mTabHost = (TabHost) findViewById(android.R.id.tabhost);

        mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("Network")
                .setContent(R.id.Network));
        mTabHost.addTab(mTabHost.newTabSpec("tab2").setIndicator("Power")
                .setContent(R.id.Power));
        mTabHost.addTab(mTabHost.newTabSpec("tab3").setIndicator("Connectivity")
                            .setContent(R.id.Connectivity));
        mTabHost.addTab(mTabHost.newTabSpec("tab4").setIndicator("Offline")
                .setContent(R.id.Offline));

        mTabHost.setCurrentTab(0); // sets default tab
    }
    // more methods
}

要在下面的评论中回答您的问题:

“我基本上想要 4 个名称不同的选项卡,然后在每个选项卡中我想要不同的文本框、复选框等以及图表。请记住,这些选项卡里面不会有相同的东西”

您正在以编程方式添加选项卡。如果您想附加整个layout,请定义布局(例如,在LinearLayoutFrameLayout等内),然后以编程方式将它们添加到您的.java代码中。

tabs.xml具有以下结构:

结构图

从上面的结构图中可以看出,您的 xml 代码仅在<RelativeLayout android:id="@+id/Network" </>. 请添加您希望在其他RelativeLayouts 中显示的对象(即 Power、Connectivity 和 Offline)。

为所有其他三个添加对象RelativeLayout后,您必须在代码中编写设置到选项卡的.java代码。例如,以下代码设置 <RelativeLayout android:id="@+id/Networktab1.

mTabHost.addTab(mTabHost.newTabSpec("tab1").setIndicator("Network")
            .setContent(R.id.Network));

请重复上述步骤并相应地添加所有四个选项卡。您可以将Network和替换R.id.Network为其他选项卡名称(例如PowerR.id.Power)。

于 2013-03-12T07:22:43.570 回答