java - 将字符串从一个子类传递到另一个子类

标签 java android android-asynctask

我正在调用一个 Web 服务来从 json 中获取一个对象,然后我需要将该对象传递给另一个 Web 服务,该对象是我制作的字符串。我在 AsyncTask 中调用了每个 Web 服务。我无法将第一个名为 map 的 jsonObject 传递给另一个子类。不用担心 actaul 调用,我想将字符串“map”传递给第二个 AsyncTask 以便能够在网络调用中使用它。这两个类都是子类。

 public class aisleStoreID extends AsyncTask<String, String, String> {



    @Override
    protected String doInBackground(String... params) {

        String urlExtension = "getpartnerstore?latitude=" + lat + "&longitude=" + lng + "&partner_id=" + "60" + "&vendor_store_nbr=" + id + "";
        final String authToken = Utils.md5(urlExtension);

        String urlString = "http://aisle411.ws/webservices2/getpartnerstore.php?latitude=" + lat + "&longitude=" + lng + "&partner_id=" + 60 + "&vendor_store_nbr=" + id + "&auth=" + authToken;


        InputStream inputStream = null;

        try {
            HttpResponse response = ConnectionHelper.executeHttpGetStoreMap(urlString);
            HttpEntity entity = response.getEntity();
            inputStream = entity.getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream, "UTF-8"));
            StringBuilder sb = new StringBuilder();

            String line;
            while ((line = reader.readLine()) != null) {
                sb.append(line);
            }
            result = sb.toString();
            if (response != null) {
                result = response.toString();
                JSONObject jsonObject = new JSONObject(String.valueOf(sb));
                JSONArray arr = jsonObject.getJSONArray("stores");
                JSONObject jObj = arr.getJSONObject(0);
                String map = jObj.getString("store_map_url");


                Intent intent = new Intent(this, getStoreMap.class);
                intent.putExtra("retailer_store_id", map);
                startActivity(intent);

            }
        } catch (Exception e) {
            System.out.println(e.getMessage());
            return e.getMessage();
        }

        return result;
    }

    @Override
    protected void onPostExecute(String result) {

        System.out.println("  What's in it" + result);
    }
}

public class getStoreMap extends AsyncTask<String, String, String> {

    Bundle bundle = getIntent().getExtras();
    String storeMap = bundle.getString("retailer_store_id");

    @Override
    protected String doInBackground(String... params) {
        String urlExtension = "map?latitude=" + lat + "&longitude=" + lng + "&partner_id=" + "60" + "&retailer_store_id=" + map + "";
        final String authToken = Utils.md5(urlExtension);
        String urlString = "http://aisle411.ws/webservices2/map.php?latitude=" + lat + "&longitude=" + lng + "&partner_id=" + 60 + "&retailer_store_id=" + map + "&auth=" + authToken;*/

        return null;
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
    }
}

最佳答案

尝试将提取 storeMap 的代码从 extras 移至 doInBackground 方法。

关于java - 将字符串从一个子类传递到另一个子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33534346/

相关文章:

java - 部署 WAR 还是 "fat"JAR?

Java空 block 作用域

安卓输入对话框

android - onActivityResult 方法错误

android - 全局 ArrayList 和 AsyncTask 问题

java - Morphia:将 MongoDb 文档检索为 java 对象

Java JPA。 SQL 接受 '_' LIKE 错误

android - 谷歌云消息,服务不可用

java - 进度对话框中的许多方法无法解决

Android - 如何容纳在 AsyncTask doInBackground 方法中执行的线程