Android 是否可以对多个活动使用一个UI处理程序?

Android 是否可以对多个活动使用一个UI处理程序?,android,handlers,Android,Handlers,嗨,我想对多个活动只使用一个处理程序。我可以这样做吗?将此处理程序声明为静态并访问它:MyClass.myHandler将此处理程序声明为静态并访问它:MyClass.myHandler当然可以。创建一个实现所需接口的新类,并在需要时实例化它 public class ExternalClickListener implements View.OnClickListener { @Override public void onClick(View v) { //

嗨,我想对多个活动只使用一个处理程序。我可以这样做吗?

将此处理程序声明为
静态
并访问它:
MyClass.myHandler

将此处理程序声明为
静态
并访问它:
MyClass.myHandler

当然可以。创建一个实现所需接口的新类,并在需要时实例化它

public class ExternalClickListener implements View.OnClickListener {

    @Override
    public void onClick(View v) {
        // Do whatever you want.
    }

}
让我们以
OnClickListener
为例。创建一个类
外部ClickListener

public class ExternalClickListener implements View.OnClickListener {

    @Override
    public void onClick(View v) {
        // Do whatever you want.
    }

}
现在,当您想在
按钮上设置它时

btn.setOnClickListener(new ExternalClickListener());

当然。创建一个实现所需接口的新类,并在需要时实例化它

让我们以
OnClickListener
为例。创建一个类
外部ClickListener

public class ExternalClickListener implements View.OnClickListener {

    @Override
    public void onClick(View v) {
        // Do whatever you want.
    }

}
现在,当您想在
按钮上设置它时

btn.setOnClickListener(new ExternalClickListener());

为了给Octavian answer添加一点内容,实际上您只有一个处理程序类,但每个活动只有一个实例

例如:

public class MyHandler extends Handler {
  // Keep a weak reference to the activity owning the handler
  private WeakReference<Activity> activityRef;

  public MyHandler(Activity a) {
    this.activityRef = new WeakReference<Activity>(a);
  }

  public void handleMessage(Message msg) {
    // do your stuff here, for instance, finish the activity
    if (activityRef.get()!=null) {
      activityRef.get().finish();
    }
  }
}

为了给Octavian answer添加一点内容,实际上您只有一个处理程序类,但每个活动只有一个实例

例如:

public class MyHandler extends Handler {
  // Keep a weak reference to the activity owning the handler
  private WeakReference<Activity> activityRef;

  public MyHandler(Activity a) {
    this.activityRef = new WeakReference<Activity>(a);
  }

  public void handleMessage(Message msg) {
    // do your stuff here, for instance, finish the activity
    if (activityRef.get()!=null) {
      activityRef.get().finish();
    }
  }
}

嗯,很有趣。我想说Handler是指听者,现在当我坐下来思考时,我意识到确实存在一个Handler类原因是相同的,只有扩展类或实现的接口会改变。感谢Marvin和Octavian提供的答案。现在我想通过片段类型,比如一个活动是主活动,另一个是从活动。嗯,很有趣。我想说Handler是指听者,现在当我坐下来思考时,我意识到确实存在一个Handler类原因是相同的,只有扩展类或实现的接口会改变。感谢Marvin和Octavian提供的答案。现在我想通过片段类型,就像一个活动是主活动,另一个是从活动。你到底是什么意思?
处理程序
侦听器
?你的确切意思是什么?
处理程序
听众
?感谢屋大维和马文提供的答案。现在我想通过片段类型,就像一个活动是主活动,另一个是从活动。感谢屋大维和马文提供的答案。现在我想通过片段类型,像一个活动是主活动,另一个是从活动。为什么这不是最好的主意。为什么处理程序不能是静态的?为什么这不是最好的主意。为什么处理程序不能是静态的?