两个布局的相同Java文件(XML)

时间:2017-07-28 05:38:49

标签: java android xml

我的应用程序有2个布局 但是我在MainActivity.JAVA

中写了我所有的逻辑

我想将MainActivity.JAVA用于我的其他布局(XML)文件

我该怎么做?

这是我的MainActivity.XML(布局文件)

This is main Layout file

现在我希望右边的蓝色按钮调整

的新布局

新XML(没有Java文件)仅布局文件

This is another Layout File

现在我想使用相同的Java文件(MainActivity.JAVA) 对于这个新的布局文件

3 个答案:

答案 0 :(得分:1)

您必须使用Fragment或其他解决方案include布局。你说你有一个共同的活动,在这个活动中你需要包含两个XML布局,然后你可以像这样设置: -

您可以使用include元素来获取子XML文件:

<强> main.xml中

<LinearLayout ... >
    <include layout="@layout/file1" />
    <include layout="@layout/file2" />
</LinearLayout>

<强> file1.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:background="@color/toolbar_color">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:gravity="center_vertical">

        <ImageView
            android:id="@+id/iv_toolbar_left"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerVertical="true"
            android:layout_gravity="center_vertical"
            android:padding="10dp"
            android:visibility="gone" />

            <TextView
             android:id="@+id/toolbar_title"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_centerHorizontal="true"
             android:layout_centerInParent="true"
             android:ellipsize="end"
             android:gravity="center_horizontal"
             android:padding="10dp"
             android:singleLine="true"
             android:text="MyApp"
             android:textColor="@color/white"
             android:textSize="20sp"
             android:textStyle="bold" />
      </LinearLayout>
</android.support.v7.widget.Toolbar>

<强> file2.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_splash"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center"
    android:background="@color/colorPrimaryDark"
    tools:context="com.inducesmile.androidmusicplayer.SplashActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:padding="16dp">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:src="@drawable/logomusic"
            android:contentDescription="@string/app_name"/>

    </LinearLayout>
</LinearLayout>

答案 1 :(得分:0)

如果您有两个XML文件,则可以通过将两个XML文件包含在另一个文件中来合并它们。

例如:如果您有两个名为a.xml和b.xml的文件,那么您可以使用 include 标记将b.xml包含在a.xml中

<include layout="@layout/b.xml" />

然后在MainActivity.java中调用setContentView(R.layout.a)

或者,您可以使用碎片。

答案 2 :(得分:0)

在您的主要活动布局中,您可以使用FrameLayout,然后可以添加片段。然后在Java文件中,您可以使用getSupportFragmentManager().beginTransaction().replace()方法根据需要对布局XML进行充气。