现在我有一个main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myapp="http://schemas.android.com/apk/res/com.b"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/background_color"
android:textColorPrimaryInverse="#E97C03"
>
<LinearLayout
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/background_color"
android:textColorPrimaryInverse="#E97C03"
>
<ImageView
android:id="@+id/header_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/logo"
android:layout_gravity="left"
android:background="@color/seperator_bg_color"
/>
<ImageView
android:id="@+id/build_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_camera"
android:layout_gravity="left"
/>
<ImageView
android:id="@+id/saved_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_details"
/>
<ImageView
android:id="@+id/settings_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_menu_upload"
/>
</LinearLayout>
<TextView
android:id="@+id/seperator_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:padding="1dip"
android:background="@color/seperator_bg_color"
android:textColor="@color/seperator_text_color"
android:textStyle="bold"
android:text="@string/header_build"
android:textColorPrimaryInverse="#E97C03"
/>
<!-- <TextView -->
<!-- android:id="@+id/selection" -->
<!-- android:layout_width="fill_parent" -->
<!-- android:layout_height="wrap_content" -->
<!-- />-->
<ListView
android:id="@android:id/list"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:drawSelectorOnTop="false"
android:textColorPrimaryInverse="#E97C03"
/>
</LinearLayout>
现在,当然,使用main.xml的所有东西都会在顶部有一个标题(第二个包含在水平的LinearLayout中。
但是在所有这些视图中,我都有header_image,saved_image,build_image等链接,这些链接将用户带到特定视图。问题是,如果我进行更改,我必须编辑每个具有这些链接的活动。
有没有办法可以创建一个只包含这样信息的外部类:
build =(ImageView)findViewById(R.id.build_image);
build.setOnClickListener(buildClick);
saved =(ImageView)findViewById(R.id.saved_image);
saved.setOnClickListener(savedClick);
prefs =(ImageView)findViewById(R.id.settings_image);
prefs.setOnClickListener(prefsClick);
而不是在每个Activity中都有代码?
编辑:基本上,我想重新使用我的main.xml作为所有活动的标题,但是我设置setOnClickListener我不想在每个活动中设置它们,因为如果我更改/添加到标题,我必须深入研究所有活动并改变它们。所以我想把上面的代码放在一个单独的类中。这样,在一个活动中,我调用该类,它将为标题设置这些值。或者,如果可能的话,在XML中设置onClick设置。
答案 0 :(得分:0)
我会创建一个包含应用程序范围功能的baseActivity。所有需要此功能的活动都只会扩展baseActivity。
此外,您可能希望从所有布局文件中提取该部分并放入包含布局。