gpt4 book ai didi

java - 如何将变量从 Main Activity 传递到 AsyncTask 及其方法?

转载 作者:行者123 更新时间:2023-11-29 05:55:45 25 4
gpt4 key购买 nike

我使用 AsyncTask 调用 Web 服务并编辑其响应。

我这样称呼我的任务:

new CallWebService().execute(et.getText().toString().trim());

其中 et 是一个 EditText,用户在其中提供他的电话号码(字符串)。所以我将一个字符串参数传递给执行方法。

然后在扩展 AsyncTask 的 CallWebService 类中,我采用给定的字符串并将其用作 Web 服务调用的参数:

private class CallWebService extends AsyncTask<String, Void, Object> 

doInBackround方法的代码:

        @Override
protected Object doInBackground(String... phone) {
Object result = null;

try {

SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);

// if i put "6949861372" manually at the second parametre it works!

request.addProperty("phone", phone);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
result = envelope.getResponse();
} catch (Exception e) {
//do nothing
}
return result;
}

如果我在第二个参数((字符串)电话)中手动输入“6949861372”,它会起作用!那么这里有什么问题吗?那么我怎样才能将给定的数字从 editText 传递到 doInBackground 方法呢?

我想不通了!!

最佳答案

您可以通过以下方式获取参数,

String phoneNumber = phone[0];

doInBackground() 方法中然后你可以使用这个 phoneNumber 作为参数,如下所示,

request.addProperty("phone", phoneNumber);

关于java - 如何将变量从 Main Activity 传递到 AsyncTask 及其方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12192138/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com