0

我对我正在构建的 Android 应用程序感到困惑,因为它是我的第一个应用程序。我有两个类,我的第一个类称为“Options”,它调用第二个类“NetworkConnection”,它反过来检查是否有可用的网络连接,如果有我想传回一个“1”或者如果然后没有传回“0”。我这样做是因为我想在其他几个类中使用“NetworkConnection”,这似乎是最好的方法。有人会指点我一个简单的例子,只需在下面添加几行代码,我知道厚脸皮,但我无法解决,它不像普通的 Java?!非常感谢 :)

公共类选项扩展活动{

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

    }

}

//网络连接类

公共类 NetworkConnection 扩展 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

我对你使用的逻辑有点困惑。如果您只想检查连接,为什么要在第二堂课中使用 Activity?

还有为什么要返回 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(); 

    }
}

所以第二类你想检查连接是否可用。所以我创建了一个公共方法,以便您可以在选项类中调用。

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

要启动一项活动,您必须这样做:

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 回答
0

为什么要扩展 Activity?您是否在测试时显示新视图?如果你是那么你需要使用 startActivityForResult 和使用 setResult 来返回结果

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

于 2012-05-07T20:31:37.277 回答