如何解决多个活动使用相同的按钮
| 正确,我在每个活动的确切位置都有一个登录按钮,目前我可以进行20项活动,但是很快就会上升很多,我真的不希望在其中复制和粘贴相同的代码对于每个活动,因此我正在寻找一种简单有效的解决方案来处理onClick事件,该事件将在整个应用程序中全局运行。 例如,如果用户A在活动1上单击登录按钮并登录,它将显示他已在活动2和3等上登录,依此类推..直到注销。 整个应用程序中的登录按钮具有相同的ID,即\“ @ + id / signIn \” 在每个活动开始时调用单个函数会更容易吗?我以为那不是每个处理能力的有效利用吗?! 任何建议和/或指导将不胜感激。谢谢 :)解决方法
您无法避免以任何一种方式在所有活动中实现该侦听器。但是,您可以采用更有条理的方式进行操作:
您可以为应用程序编写自定义标题布局(layout0 header),在其中具有设置了单击侦听器的\“ Sign In \”按钮(指向ing1ѭ方法):
android:onClick=\"onSignInClicked\"
然后,将此标题包含在每个活动布局中:
<include android:id=\"@+id/header\" layout=\"@layout/header\" />
您还可以创建一个包含onSignInClicked
方法声明的接口,并通过实现该接口的所有活动来强制它们定义onSignInClicked
方法的主体。
您在那实际所做的也可以包装成
全局内部的静态方法
无障碍课程,或
内部参数化的方法
您的Application
扩展类。
因此,在您的所有活动中,此方法可以是:
public static void onSignInClicked(View view)
{
// static method with call with reference to the current activity
SignInHelper.doSignIn(this);
}
要么
public static void onSignInClicked(View view)
{
// global method in your `Application` extension
// with reference to the current activity
((MyApplication)getApplicationContext()).doSignIn(this);
}
如果您选择第二种方法,请不要忘记通过设置application
标签的name
属性来更新androidManifes.xml
:
<application android:name=\".MyApplication\" [...]
,您可以将按钮创建为自定义视图。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。