0

私はそれが私の最初のものであるため、私が構築しているAndroidアプリと混同しています。私には 2 つのクラスがあります。最初のクラスは「Options」と呼ばれ、2 番目のクラス「NetworkConnection」を呼び出します。これは、利用可能なネットワーク接続があるかどうかを確認します。ある場合は「1」を返すか、 「0」を返すことはありません。他のいくつかのクラス内で「NetworkConnection」を使用したいので、これを行っていますが、これが最善の方法のようです。誰かが私に、以下に数行のコードを追加するだけの簡単な例を教えてくれますか? どうもありがとう :)

public class Options extends Activity {

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.options);
            NetworkConection nc = new NetworkConection();

    }

}

//ネットワーク接続クラス

public class NetworkConnection extends Activity {

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    myClickHandler(null);
}

public void myClickHandler(View view ) {

    ConnectivityManager connMgr = (ConnectivityManager) 
            getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
    if (networkInfo != null && networkInfo.isConnected()) {
        //pass back the value of 1
    } else {
       //pass back the value of 0 
    }
}

}

4

3 に答える 3

1

私はあなたが使用しているロジックに少し混乱しています。接続を確認したいだけなのに、なぜ2番目のクラスのアクティビティを使用しているのですか?

また、なぜ0と1を返すのですか?ブール値のtrueまたはfalseを返さないのはなぜですか?

だから私はこれがあなたが望むものだと思いますか?

public class Options extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.options);
        NetworkConection nc = new NetworkConection();
        boolean networkAvail = nc.isNetworkConnAvail(); 

    }
}

したがって、接続が利用可能かどうかを確認する2番目のクラス。そこで、optionsクラスで呼び出すことができるようにパブリックメソッドを作成しました。

public class NetworkConnection{

    public boolean isNetworkConnAvail() {

        ConnectivityManager connMgr = (ConnectivityManager) 
            getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
        if (networkInfo != null)
            return networkInfo.isConnected();

        return false;
    }
}
于 2012-05-07T20:33:13.033 に答える
0

なぜアクティビティを拡張するのですか? テスト中に新しいビューを表示していますか? その場合は、startActivityForResult を使用し、setResult を使用して結果を返す必要があります。

http://developer.android.com/reference/android/app/Activity.html#startActivityForResult(android.content.Intent , int)

于 2012-05-07T20:31:37.277 に答える
0

アクティビティを開始するには、次のようにする必要があります。

final Intent intent = new Intent (Options.this, NetworkConnection.class);
startActivityForResult(intent, NETWORK_CONNECTION);

上記のコードは、アクティビティを開始することを意味します。startActivityForResult新しいものが近くなり、最初のものに戻るときに何かを期待することを意味します(あなたの場合はオプション)。OnActivityResult結果は、コード NETWORK_CONNECTION (オプションで作成するグローバル変数) を使用して (オプションで) キャッチできます。

NetworkConnection アクティビティを閉じるときは、次のようにします。

final Intent intent = new Intent();
intent.putExtra("myresult", thevalueyouwant);
setResult(Activity.RESULT_OK, intent);
finish();

そうすれば、Options アクティビティの onActivityResult で「myresult」の値を読み取ることができます。

私の答えは完全ではありませんが、成功するにはこれらの方法についてもっと読む必要があります;)

于 2012-05-07T20:39:18.777 に答える