11

私がやりたいことは、さまざまな機能を持つJavaファイルを作成することであり、それをプロジェクト全体で使用したいと考えています。たとえば、インターネット接続を確認します。次に、各アクティビティでその関数を呼び出したいと思います。誰もそれを行う方法を知っていますか?

4

6 に答える 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

これは最善の方法ではない可能性があり、より良い代替案を提案する人もいるでしょうが、これがが行う方法です。

すべての関数を含むクラスを作成し、maybe として保存します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 に答える