Android将数据传递回调用类

时间:2012-05-07 20:15:04

标签: android class

我对我正在构建它的Android应用程序感到困惑,因为它是我的第一个。我有两个类,我的第一个叫做“选项”,它调用第二个类“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 
    }
}

}

3 个答案:

答案 0 :(得分: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;
    }
}

答案 1 :(得分:0)

为什么要扩展活动?你在测试时是否展示了新视图? 如果你那么你需要使用startActivityForResult并使用setResult来返回结果

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

答案 2 :(得分:0)

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

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

上面的代码表示您想要开始一项活动。 startActivityForResult表示您希望在新单元关闭时返回第一个(在您的情况下为选项)。 结果可以使用代码NETWORK_CONNECTION(您将在Options中创建的全局变量)在OnActivityResult(在选项中)中捕获。

关闭NetworkConnection活动时,只需执行以下操作:

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

通过这种方式,您将能够在Options活动的onActivityResult中读取“myresult”的值。

我的回答并不完整,但您必须阅读有关这些方法的更多信息才能成功;)