2011-12-12 28 views
1

我有了在最上面一欄四個扣,我使用此佈局中的所有活動,通過包括在所有活動中常見的佈局由使用通用佈局及其所有活動

<include ... >

佈局 一個共同的佈局事件

但我必須在所有活動中使用4個按鈕單擊事件 是否有任何comman方法來創建用於所有活動的自定義活動,我已創建活動並在該活動中實現4按鈕單擊事件並擴展在所有活動中這種活動,但它不適合我。 請給我一些想法。 感謝

+0

你好,你在你的應用程序中使用標籤的活動? – anddev

+0

是你mansi vora和我不使用選項卡Actvity – bindal

+0

它應該工作。你可以發佈你的代碼 – pankajagarwal

回答

2

是的,你可以讓一個活動說HeaderActivity

onCreate setContentView(R.layout.header);

設置header.xml

,並在這個類一次寫你的所有按鈕的Click事件和

現在在其他活動中擴展HeaderActivity。 等,

public class SecondActivity extends HeaderActivity 
{ 
} 

爲了顯示不同的佈局..

放的LinearLayout在低於按鈕header.xml和在彼此活動中使用

ViewGroup vg = (ViewGroup) findViewById(R.id.lldata); 
ViewGroup.inflate(getApplicationContext(), R.layout.listwitter, vg); 

這裏lldata是在的LinearLayout頭.xml

在diff活動中顯示不同的佈局。

+0

謝謝,我用我的項目類似的實現,但我有[此問題](http://stackoverflow.com/q/11522798/840669)。請回答如果你能弄清楚是什麼問題。 – Rajkiran

+1

魔獸世界。工作完美。非常感謝.. – sandeepmaaram

1

你應該能夠像你說的那樣使用基本的OOP策略。創建處理onClick事件的父級活動。那麼你的所有活動都應該延伸那個父母。只要這些方法不是私人的,它們就會自動訪問onClick事件。

如果您需要在每個活動中對onClicks做不同的事情,則可能值得以不同的方式處理,或者使用回調風格。基本結構的例子:

public class ParentActivity extends Activity { 
    public void onMyButtonClick(View v) { 
     // do your thing 
    } 
} 

public class ChildActivity extends ParentActivity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // your activity 
    } 
} 
+0

我已經做到了,但點擊Parentactivity的事件不是工作ChildActivity – bindal

0

你好Bindalbhai ..

MainActivity myAct = (MainActivity) this.getParent(); 

TextView myTitleText = (TextView)myAct.findViewById(R.id.txtTitle); 

這可能是幫助你。或者您可以使用ViewGroup爲此。

謝謝。

+0

是但也需要單擊事件中的所有活動被宣佈請添加您自己在這個房間http://chat.stackoverflow.com/rooms/5764/androiddevlopers – bindal

+0

你好如何RU ...?瑞德? – anddev

+0

你好,你呢? – anddev

0

創建靜態對象以偵聽按鈕單擊。基於此對象處理所有活動中的事件。

例如說常量。類:

public class Constants { 
    private static int buttonState1; 
     public static int getButtonState(){ 
     return buttonState1; 
    } 
    public static int setButtonState(int x){ 
     buttonState1=x; 
    } 


} 

而在你的活動:

Button bt1=(Button) findViewById(R.id.bt1); 

bt1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

            Constants.setButtonState(1); 
         } 
      }); 

而在其他活動

if(Constants.getButtonState()==1) 
       //do something 
1
  1. 定義頁眉佈局具有4個按鈕和定義的android:的onClick內XML屬性佈局例如android:onClick="btnHomeClick",android:onClick="btnSearchClick" ....等。

  2. 通過擴展活動定義一個抽象類,並實現所有這些點擊的方法:

    public void btnHomeClick(View v) { 
    } 
    
    public void btnSearchClick(View v) 
    { 
    } 
    
  3. 包括由標記,標題佈局在XML佈局文件。 現在在您的每個活動類中擴展上述活動類。

  4. 這樣你只需要定義一個click事件一次。

+1

非常感謝! @Paresh Mayani :) –

+0

@VishalPatoliyaツ很高興它幫助你! –

相關問題