だから今、私は、ImageViewsを外部クラスに設定して、それらを変更すると、それらを含むすべてのビューが変更されますか?
<?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>
今一番上のヘッダ(第2、水平、のLinearLayoutに含まれているすべてのものを持っていますmain.xmlを使用していますもちろん、すべてをmain.xmlを持っている。
しかし、私は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);
このような情報は、1つのアクティビティごとにそのコードを持つのではなく、
EDIT:基本的には、すべてのアクティビティのヘッダーとしてmain.xmlを再利用したいのですが、setOnClickListenerを設定すると、ヘッダに変更/追加するとすべてのアクティビティにそれらを設定したくありません私はすべての活動を掘り下げ、それらを変えなければなりません。
私は上記のコードを別のクラスに入れたいと思います。そのようにして、アクティビティでは、そのクラスをコールし、ヘッダーの値を設定します。または、可能であれば、XMLのonClick設定を設定します。
「これらのすべてのビューにはリンクがあります」という意味を明確にすることはできますか?このmain.xml内の別々のxmlや要素を表示していますか?使用するすべてのアクティビティの「ヘッダー」としてmain.xmlを再利用しようとしていますか? – Jack
ええ、私はすべての活動のための私のヘッダーとして私のmain.xmlを再利用したいのですが、私がsetOnClickListenerを設定するところでは、私はヘッダーに変更/追加すると、すべての活動を通してそれらを変える。 – James