2011-12-12 25 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ツ很高兴它帮助你! –

相关问题