Java 我做了一个“public void”函数,现在在另一个活动中如何称呼它?

Java 我做了一个“public void”函数,现在在另一个活动中如何称呼它?,java,android,Java,Android,我以前从未使用过public,但现在我需要在多个活动中使用函数,所以我没有在每个活动中创建方法,而是将其公开,以便每个活动都可以访问它。但我现在如何使用它呢?如果我只是在另一个活动中调用该方法,它不会识别它,也不会给我导入它的选项 方法如下: public boolean isNetworkAvailable() { ConnectivityManager connectivityManager = (ConnectivityManager) getSystemSe

我以前从未使用过public,但现在我需要在多个活动中使用函数,所以我没有在每个活动中创建方法,而是将其公开,以便每个活动都可以访问它。但我现在如何使用它呢?如果我只是在另一个活动中调用该方法,它不会识别它,也不会给我导入它的选项

方法如下:

public boolean isNetworkAvailable() {
    ConnectivityManager connectivityManager 
          = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}

这是一个实例方法,因此,您需要一个对象,在该对象上调用它作为子活动的实例。这意味着,如果调用对象实例的类不是包含该方法的类,则需要传递该对象实例。那不是个好主意。考虑使其静态化:

然后,您可以在不使用任何对象实例的情况下按类名调用

YourActivityClass.isNetworkAvailable((ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE));

还考虑将此方法移动到助手类。


哦,您的方法不是public void,它是public boolean。

这是一个实例方法,因此,您需要一个对象来调用它作为子活动的实例。这意味着,如果调用对象实例的类不是包含该方法的类,则需要传递该对象实例。那不是个好主意。考虑使其静态化:

然后,您可以在不使用任何对象实例的情况下按类名调用

YourActivityClass.isNetworkAvailable((ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE));

还考虑将此方法移动到助手类。

哦,你的方法不是public void,而是public boolean。

如果你想从多个活动中使用isNetworkAvailable,你不应该把它放在一个活动中,然后从另一个活动中使用它。相反,您应该创建一个实用程序类。实用程序类通常是一个带有静态助手方法的类,您可以在应用程序中使用这些方法

例如:

package com.example.util;

public static class NetworkUtils {
    public static boolean isNetworkAvailable(Context context) {
        ConnectivityManager connectivityManager 
              = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null && activeNetworkInfo.isConnected();
    }
}
然后,在活动中,按如下方式使用:

NetworkUtils.isNetworkAvailable(this)
。。。或者如果你在一个碎片里:

NetworkUtils.isNetworkAvailable(getActivity())
。。。或者,如果您只是在某个回调中:

NetworkUtils.isNetworkAvailable(MyActivity.this)
如果要从多个活动中使用isNetworkAvailable,则不应将其放在一个活动中,然后再从另一个活动中使用。相反,您应该创建一个实用程序类。实用程序类通常是一个带有静态助手方法的类,您可以在应用程序中使用这些方法

例如:

package com.example.util;

public static class NetworkUtils {
    public static boolean isNetworkAvailable(Context context) {
        ConnectivityManager connectivityManager 
              = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null && activeNetworkInfo.isConnected();
    }
}
然后,在活动中,按如下方式使用:

NetworkUtils.isNetworkAvailable(this)
。。。或者如果你在一个碎片里:

NetworkUtils.isNetworkAvailable(getActivity())
。。。或者,如果您只是在某个回调中:

NetworkUtils.isNetworkAvailable(MyActivity.this)

也许您可以将其移动到一个实用程序类,并将该方法定义为静态,将示例代码定义为下面的添加必要的导入

public class Utility {
    public static boolean isNetworkAvailable(Context mc) {
        ConnectivityManager connectivityManager 
          = (ConnectivityManager) mc.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null && activeNetworkInfo.isConnected();
    }
}

也许您可以将其移动到一个实用程序类,并将该方法定义为静态,将示例代码定义为下面的添加必要的导入

public class Utility {
    public static boolean isNetworkAvailable(Context mc) {
        ConnectivityManager connectivityManager 
          = (ConnectivityManager) mc.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
        return activeNetworkInfo != null && activeNetworkInfo.isConnected();
    }
}

两种不同的情况:

第一选择 是创建一个静态方法,类似于下面的AnyAnyAnyAnyAnyAnyAnyAnyAnyAnyAnyAnyAnyAnyAnyAnyUtil类等:

public static boolean isNetworkAvailable(Context ctx) {
    NetworkInfo activeNetworkInfo = ((ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
第二种选择 是创建抽象活动,例如:


并确保您的活动扩展了MyActivity。因此,您的活动可以随意使用isNetworkAvailable方法。

两种不同的场景:

第一选择 是创建一个静态方法,类似于下面的AnyAnyAnyAnyAnyAnyAnyAnyAnyAnyAnyAnyAnyAnyAnyAnyUtil类等:

public static boolean isNetworkAvailable(Context ctx) {
    NetworkInfo activeNetworkInfo = ((ConnectivityManager) ctx.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
    return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
第二种选择 是创建抽象活动,例如:


并确保您的活动扩展了MyActivity。因此,您的活动可以随意使用isNetworkAvailable方法。

正是我需要的答案,谢谢!这正是我需要的答案,谢谢!