1

所以我正在尝试制作一个所有注销按钮都会调用的注销功能。

我发现这个页面在 android 中创建全局函数

我开始编写一个全局函数,它拒绝识别 startActivity()

这是我的代码

import android.content.Intent;

public class Utilities {


public static void Logout(){
    System.out.println("Logging Out");
    Intent i = new Intent(getBaseContext(), MainActivity.class);
    startActivity(i);
 }
}

getBaseContext() 也给了我一个错误,但我能够找到另一个解决方法(我认为,无法对其进行测试)。

4

3 回答 3

3

您将需要活动上下文。

 public class Utilities {
 public static void Logout(Context context){
 Log.i("Utilities","Logging Out");
 Intent i = new Intent(context, MainActivity.class);
 context.startActivity(i);
 }
 }

startActivity是您的活动类的方法。因此,您将需要活动上下文。

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

于 2013-07-30T18:32:34.883 回答
0

您应该尝试将其传递ContextActivity它。

public class Utilities {

    public static void Logout(Context c) {
        System.out.println("Logging Out");
        Intent i = new Intent(c, MainActivity.class);
        c.startActivity(i);
    }
}

所以当你从Activity

但是,另一种方法是创建一个BaseActivitywhichextends Activity并在其中包含该功能。然后扩展您的所有ActivitiesfromBaseActivity并使用<include标签将其包含Button在每个layout文件中,可能作为页眉、页脚或其他任何内容。

Utlities.Logout(this);
于 2013-07-30T18:29:41.537 回答
0

添加当前活动的参数 ( from)。然后用它调用你的静态方法。

public static void Logout(Activity from){
    System.out.println("Logging Out");
    Intent i = new Intent(from, MainActivity.class);
    from.startActivity(i);
 }
}
于 2013-07-30T18:29:46.337 回答