我想要做的是创建一个具有各种功能的java文件,我希望在整个项目中使用它。例如,检查Internet连接。然后我想在每个活动上调用该函数。有谁知道怎么做?
答案 0 :(得分:17)
像这样创建类并在此处添加您的函数:
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" />
感谢。
答案 1 :(得分:3)
像这样创建Utility类:
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);
答案 2 :(得分:0)
只需使用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();
虽然有很多方法可以做,但请查看其他答案。希望这有用。
答案 3 :(得分: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;
在我需要测试Internet连接的代码部分中,我使用了以下代码:
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;
}