具有多种布局的简单Android应用

时间:2017-07-12 19:43:07

标签: android android-layout android-fragments

我正在尝试使用Android Studio构建一个简单的Android应用。该应用程序具有主要布局和十个或更多子布局。只需按一下按钮,用户就可以移动到其中一个子布局。用户将按后退按钮返回主布局。每个子布局都是独立布局,与主布局或其他子布局没有关系或依赖关系。

我已经阅读了多个教程并查看了很多示例。我试图了解我应该使用什么Android组件来构建这个简单的应用程序及其子布局。

我首先尝试将每个子布局都设为活动,然后使用

Intent intent = new Intent(this, DistPerVol.class);
startActivity(intent);

从主布局切换到其中一个子布局。但是,由于每个子布局都是一个单独的活动,因此在安装应用程序时,它在应用程序屏幕上有多个图标。

我接下来尝试只使用一个活动并使用

切换到子布局
setContentView(R.layout.dist_per_vol);

从主布局切换到其中一个子布局。但是,这导致后退按钮离开应用程序而不是备份到主布局。

今天,我读到了NavigationDrawer,ActionBar和片段。我不想继续尝试不同的组件。我想要一个允许用户选择子布局的主布局,后退按钮返回主布局,但没有多个活动。我应该使用哪些Android组件来实现它?

也许多种活动是正确的方法,但我已经错误地构建了我的AndroidManifest.xml。这是我的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="edu.byui.cit360.calculators">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".Calculators">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name=".ComparePrices">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".Tip">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

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

3 个答案:

答案 0 :(得分:1)

片段是完美的类。

  

Fragment表示一个行为或用户界面的一部分   活动。   https://developer.android.com/guide/components/fragments.html

您可以将您的按钮放在活动中,以便通过FragmentManager管理要显示的片段。

http://sapandiwakar.in/replacing-fragments/

答案 1 :(得分:1)

像Gabe Sechan指出的那样:只有一个Activity应该有意图过滤器。然后主屏幕上只会显示一个启动器图标,用户将看到的第一个Activity是带有意图过滤器的Activity

可以编写一个包含多个Activity而非单个Fragment的应用。 (事实上​​,在Android 3.0之前,每个人都这样做了。)这些应用程序还可以具有ActionBar或NavigationDrawer等功能。

一开始可能不喜欢Fragment,因为它们似乎很复杂。但使用它们也会带来好处。例如,只有一个Activity和几个Fragment的应用可以使用相同的导航抽屉(设置可能发生在Activity

答案 2 :(得分:0)

您应该将ListView用于此类实现,将listview作为主要布局(或主要活动)并在每个列表元素上附加OnclickListener,每当您单击任何列表元素时,您将转到新活动。 you can see the implementation of listview here on this link