java - 面向对象的android将方法从 Activity 中移动到具有上下文的新类中

标签 java android

我有许多具有注销按钮的类,因此我认为将注销方法移到每个单独的类之外并为其提供自己的类是有意义的,这样我就不必在多个类中修复它如果我对其进行更改,但是我面临一些与上下文相关的问题

该方法采用 Context 上下文,在这种情况下将是 homeActivity.this

第一个问题是

                    Util.HideKeyBoard(HomeActivity.this);

如果我把它改成

                    Util.HideKeyBoard(context);

它仍然是红色的,我不知道为什么,我该如何解决这个问题

下一个问题是开始新的 Activity 。

Intent intent = new Intent(context, SignupActivity.class);
                startActivity(intent);
                AnimatorClass.appearLeftAnimation(context);
                finish();

StartActivity 是红色的,我不知道为什么,动画师类在上下文中也是红色的,完成也是红色的。

最佳答案

方法startActivity()属于Context类,finish()属于Activity类。

查看文档:

https://developer.android.com/reference/android/content/Context.html#startActivity(android.content.Intent)

https://developer.android.com/reference/android/app/Activity.html#finish()

你可以这样解决这个问题:

public void yourExternalMethod(Activity activity) {
   Intent intent = new Intent(activity, SignupActivity.class);
   activity.startActivity(intent);
   AnimatorClass.appearLeftAnimation(activity);
   activity.finish();
}

关于java - 面向对象的android将方法从 Activity 中移动到具有上下文的新类中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37836723/

相关文章:

java - 我怎样才能将其更改为数组?

Java进程waitFor()函数导致应用程序卡住

java - 将类转换为记录时的兼容性问题

java - 调用notifyAll时出现IllegalMonitorStateException

android - WebView 淡化边缘是实心 block

android - 在服务器上托管 Android 操作系统

android - 在android API 23中获取用户的位置

java - FileOutputStream 打开时发生 FileNotFoundException

android - 为什么一个按钮可以添加多个ClickListener

android - 如何在 Android 中访问工具栏内的按钮