我的应用程序有2个布局 但是我在MainActivity.JAVA
中写了我所有的逻辑我想将MainActivity.JAVA用于我的其他布局(XML)文件
我该怎么做?
这是我的MainActivity.XML(布局文件)
现在我希望右边的蓝色按钮调整
的新布局新XML(没有Java文件)仅布局文件
现在我想使用相同的Java文件(MainActivity.JAVA) 对于这个新的布局文件
答案 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进行充气。