我想做的是创建一个具有各种功能的java文件,我想在整个项目中使用它。例如检查 Internet 连接。然后我想在每个活动上调用该函数。有谁知道这是怎么做到的吗?
问问题
26345 次
6 回答
22
像这样创建类并在此处添加您的功能:
package com.mytest;
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class MyGlobals{
Context mContext;
// constructor
public MyGlobals(Context context){
this.mContext = context;
}
public String getUserName(){
return "test";
}
public boolean isNetworkConnected() {
ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null) {
// There are no active networks.
return false;
} else
return true;
}
}
然后在您的活动中声明实例:
MyGlobals myGlog;
然后初始化并使用该全局类中的方法:
myGlog = new MyGlobals(getApplicationContext());
String username = myGlog.getUserName();
boolean inConnected = myGlog.isNetworkConnected();
您的清单文件中所需的权限:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
谢谢。
于 2013-01-23T17:04:12.663 回答
3
像这样创建实用程序类:
public final class AppUtils {
private AppUtils() {
}
@SuppressLint("NewApi")
public static void setTabColor(TabHost tabHost) {
int max = tabHost.getTabWidget().getChildCount();
for (int i = 0; i < max; i++) {
View view = tabHost.getTabWidget().getChildAt(i);
TextView tv = (TextView) view.findViewById(android.R.id.title);
tv.setTextColor(view.isSelected() ? Color.parseColor("#ED8800") : Color.GRAY);
view.setBackgroundResource(R.color.black);
}
}
}
现在,在任何类别的 Android 应用程序中,您都可以像这样使用 Apputils:
AppUtils.setTabColor(tabHost);
于 2013-01-23T17:08:32.343 回答
1
这可能不是最好的方法,并且会有其他人可能会提出一些更好的选择,但这就是我会做的。
创建一个包含所有功能的类并将其保存为可能Utility.java
.
在需要调用任何函数的代码中使用 Utility 类的对象。
Utility myUtilObj = new Utility();
myUtilObj.checkInternet();
或者也许使函数静态,你可以简单地使用Utility.checkInternet()
你需要调用它的地方。
于 2013-01-23T16:58:38.790 回答
1
只需使用方法创建public
类static
,就像这样......
package com.example.test1;
public class GlobalMethod {
public static String getHelloWorld() {
return "Hello, World!";
}
public static int getAppleCount() {
return 45;
}
}
现在,您可以从任何地方调用方法...
GlobalMethod.getHelloWorld();
GlobalMethod.getAppleCount();
有很多方法可以做,请查看其他答案。希望这会有所帮助。
于 2015-06-11T03:38:27.240 回答
0
您可以创建一个实用程序类,它具有一组静态方法(假设这样的类不拥有任何自己的真实状态)。现在可以从应用程序的不同部分调用这些静态方法。
于 2013-01-23T16:59:03.507 回答
0
我在下面描述我是如何实现它的。首先,我在中创建了以下类app/src/main/java/com/[my folder]/MyGlobals.java
:
package [My package];
import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
public class MyGlobals {
Context mContext;
// Constructor
public MyGlobals(Context context){
this.mContext = context;
}
public boolean checkInternetConnection() {
ConnectivityManager cm = (ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if ((cm != null) && (netInfo != null)) {
if (netInfo.isConnected()) {
return true;
}
}
return false;
}
}
然后在需要使用全局函数的类中,我声明了这些成员变量:
MyGlobals myGlobals;
boolean checkInternetConnection;
在我需要测试互联网连接的代码部分中,我使用了这个:
myGlobals = new MyGlobals(getApplicationContext());
checkInternetConnection = myGlobals.checkInternetConnection();
if(checkInternetConnection == false){
Util.showToast([Name of my activity].this, getString(R.string.nointernet), getString(R.string.error), true, false);
return;
}
于 2019-07-30T23:31:53.710 回答