2012-08-31 57 views
1

我們可以使用<include />將佈局包含到另一箇中。如何重用活動代碼?

我包括activity_main.xml中使用<include />activity_second.xml

activity_main.xml有一個<TextView />和一個<Button />。 而<Button />有一個處理程序doThis(View v){..}MainActivity.java

如何重用在SecondActivity.java

回答

3

您可以使用該片段

2

的按鈕處理程序沒有按鈕處理的事情。這是OnClickListener。要重複使用,請將該來源複製到第二個活動課程或創建和SecondAcivity將擴展的類別,並在其中添加通用代碼。

1

我做了一些類似於您的問題。不要以爲比使用Fragments更好,但總而言之。

你有你的layout_main.xml。您可以導入其他XML(menu.xml文件)到,像這樣:

<include 
    android:id="@+id/layoutMenu" 
    layout="@layout/menu" /> 

創建Menu.java類這樣的(我複製這從我自己的類,所以它是不完整的,但對於它的想法) :

public class Menu { 

ImageView buttonNieuws; 

public void set(Activity activity, String currentPage) { 

    // Button NIEUWS 
    buttonNieuws = (ImageView) activity.findViewById(R.id.button_nieuws); 

    if (!currentPage.equals("nieuws")) { 

     buttonNieuws.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Intent intent = new Intent(view.getContext(), 
         Nieuws.class); 
       view.getContext().startActivity(intent); 
      } 
     }); 

    } else { 

     buttonNieuws.setImageDrawable(activity.getResources().getDrawable(
       R.drawable.button_nieuws_on)); 
    } ... 

然後在你的主活動類,你可以使用這樣的代碼給它的所有聯繫在一起:

Menu menu = new Menu(); 
menu.set(this, currentPage); 

巨大的缺點是無限的活動得到堆放在彼此的頂部。這是我的臨時解決方案,因爲我還沒有進入碎片。

相關問題