android中的每个活动都会单击常用按钮
我的布局包含一个标题,我在每个活动中都包含了这个标题,在这个标题中有一个图像按钮。是否可以为此imageButton写入公共onClick事件???是。创建一个实现所需侦听器的单例类,并将该实例添加到每个屏幕上的按钮。您可以编写一个扩展OnClickListener和onClick方法的类。然后在每个活动的onCreate方法中,找到ImageButton并将其onClickListener设置为该类:android中的每个活动都会单击常用按钮,android,Android,我的布局包含一个标题,我在每个活动中都包含了这个标题,在这个标题中有一个图像按钮。是否可以为此imageButton写入公共onClick事件???是。创建一个实现所需侦听器的单例类,并将该实例添加到每个屏幕上的按钮。您可以编写一个扩展OnClickListener和onClick方法的类。然后在每个活动的onCreate方法中,找到ImageButton并将其onClickListener设置为该类: MyOnclickListener implements OnClickListener {
MyOnclickListener implements OnClickListener {
private Context context;
public MyOnclickListener(Context context) {
this.context = context;
}
@Override
public void onClick(View arg0) {
Intent intent = new Intent(context, MyActivity.class);
context.startActivity(intent);
}
}
在您的活动中:
protected void onCreate(...) {
setContentView(...);
((ImageButton) findViewById(R.id.mybutton)).setOnClickListener(new MyOnclickListener(this));
}
编辑:对不起,当然可以
EDIT2:请参阅更新的代码以获取上下文参考。cant0na和Juhani提供的答案很可能就是您正在寻找的答案(在cant0na的答案上有一个小注释)。如果您需要一个更自我维护和容错的解决方案,您可以定义自己的“小部件”,它处理自己的事件。为此,您需要:
- 描述标题的xml布局文件
- 一个自定义类,它将(自动)膨胀上述XML布局并管理任何“公共事件”
Hi,cant0na是否可以编写一个Intent myStuff=newintent(这个,myStuff.class);当我尝试这个时,我得到了一个错误,OnClickListener
不是一个接口吗?你不需要实现它而不是扩展它吗?hi cant0na公共类MyComment实现OnClickListener{@Override public void onClick(View v){//TODO Auto-generated method stub Log.w(“Sa”,“ssd”);//Intent myStuff=newintent(ct,myStuff.class);//startActivity(myStuff);}是否可以在onClick事件中调用Intent???您需要对上下文进行引用才能使用Intent。我会就此回复您。您好,cant0na解决方案在一定程度上解决了我的问题,但在onClick事件中,我想调用一个新活动。我尝试调用**Intent I=new Intent();星触觉(i)**但它显示了一些错误,当我调试时,它显示“未找到源”。。。。
<com.dbm.widget.MyHeader
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<ImageView
android:layout_width="60dp"
android:layout_height="20dp"
android:src="@drawable/myIcon"
android:id="@+id/myButton" />
</com.dbm.widget.MyHeader>
package com.dbm.widget;
public class MyHeader extends LinearLayout implements OnClickListener {
// Constructor.
public MyButton() {
((ImageButton) findViewById(R.id.myButton)).setOnClickListener(this);
}
// OnClick event callback.
public void onClick(View view) {
// Do whatever you need to do here.
}
}
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.dbm.MyHeader
android:layout_width="match_parent"
android:layout_height="20dp" />
<!-- Your other content goes here -->
</LinearLayout>