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提供的答案。现在我想通过片段类型,就像一个活动是主活动,另一个是从活动。你到底是什么意思?处理程序
或侦听器
?你的确切意思是什么?处理程序
或听众
?感谢屋大维和马文提供的答案。现在我想通过片段类型,就像一个活动是主活动,另一个是从活动。感谢屋大维和马文提供的答案。现在我想通过片段类型,像一个活动是主活动,另一个是从活动。为什么这不是最好的主意。为什么处理程序不能是静态的?为什么这不是最好的主意。为什么处理程序不能是静态的?