2011-07-08 4 views
0

だから今、私は、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設定を設定します。

+0

「これらのすべてのビューにはリンクがあります」という意味を明確にすることはできますか?このmain.xml内の別々のxmlや要素を表示していますか?使用するすべてのアクティビティの「ヘッダー」としてmain.xmlを再利用しようとしていますか? – Jack

+0

ええ、私はすべての活動のための私のヘッダーとして私のmain.xmlを再利用したいのですが、私がsetOnClickListenerを設定するところでは、私はヘッダーに変更/追加すると、すべての活動を通してそれらを変える。 – James

答えて

0

私は、アプリケーション全体の機能を含むbaseActivityを作成します。この機能が必要なすべてのアクティビティは、代わりにbaseActivityを拡張します。

また、すべてのレイアウトファイルからそのセクションを抽出し、インクルードレイアウトに入れることもできます。

関連する問題