连接里面的try catch

时间:2017-06-23 07:41:49

标签: android

    try {
        final List<NetworkType> dataReceived = getData();
        int i = 0;
        //Array Iteration
        for(final NetworkType networkType : dataReceived) {
            i++;
            if (i > 3) {
                Toast.makeText(getApplicationContext(), "Done!!", Toast.LENGTH_SHORT);
            } else {
                String mCell1CID = networkType.getCell1CID();
                String mCell1LAC = networkType.getCell1LAC();
                String mCell1MCC = networkType.getCell1MCC();
                String mCell1MNC = networkType.getCell1MNC();
                String mCell1CI = networkType.getCell1CI();
                String mCell1TAC = networkType.getCell1TAC();

                //API requestBody
                String url = "https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyA8NAA3dUpECFn2j6pdcQT3wgqUM98UZ2Q";
                String cellID = null;
                String locationAreaCode = null;
                if (mCell1CID.equals("") && mCell1LAC.equals("")) {
                    cellID = mCell1CI;
                    locationAreaCode = mCell1TAC;
                } else if (mCell1CI.equals("") && mCell1TAC.equals("")) {
                    cellID = mCell1CID;
                    locationAreaCode = mCell1LAC;
                } else {
                    Log.d("GeoL", "3");
                }
                String requestBody =
                        "{" +
                                "\"cellTowers\":[" +
                                "{" +
                                "\"cellId\"             :" + cellID + "," +
                                "\"locationAreaCode\"   :" + locationAreaCode + "," +
                                "\"mobileCountryCode\"  :" + "\"" + mCell1MCC + "\"" + "," +
                                "\"mobileNetworkCode\"  :" + "\"" + mCell1MNC + "\"" +
                                "}" +
                                "]" +
                                "}";

                // Instantiate the RequestQueue.
                RequestQueue queue = Volley.newRequestQueue(this);
                JsonObjectRequest jsObjRequest = new JsonObjectRequest
                        (Request.Method.POST, url, requestBody, new Response.Listener<JSONObject>() {
                            @Override
                            public void onResponse(JSONObject response) {
                                JSONObject jsonObject;
                                try {
                                    jsonObject = new JSONObject(String.valueOf(response));
                                    JSONObject latitude = jsonObject.getJSONObject("location");
                                    String lat = latitude.getString("lat");
                                    String lng = latitude.getString("lng");
                                    String acc = jsonObject.getString("accuracy");
                                    if (!dataReceived.listIterator().hasNext()){
                                        String print;
                                        print = String.format("%s%s", print, print(lat.toString(), lng.toString(), acc.toString()));
                                        writeToFile(print, getApplicationContext());
                                    } else {
                                        String print;
                                        print = String.format("%s%s,", print, print(lat.toString(), lng.toString(), acc.toString()));
                                        writeToFile(print, getApplicationContext());
                                    }
                                } catch (JSONException e) {
                                    e.printStackTrace();
                                }
                            }
                        }, new Response.ErrorListener() {

                            @Override
                            public void onErrorResponse(VolleyError error) {
                                Log.e("Response", "error" + error.toString());
                            }
                        });
                queue.add(jsObjRequest);
            }
        }
    } catch (JSONException e) {
        e.printStackTrace();
    }

我需要将接收到的值连接到print变量。 但这是我收到的错误 打印需要初始化是我收到的。 如果在try / catch块之外声明它也需要它是最终的。 怎么办?

2 个答案:

答案 0 :(得分:0)

您提供的值未初始化为String.format

您需要初始化变量&#34; print&#34;你希望在String.format中使用什么(例如一个空字符串):

String print= ""

或使用String Builder:

StringBuilder stringBuilder = new StringBuilder();

stringBuilder.append("1");
stringBuilder.append("2");

String finalString = stringBuilder.toString();

答案 1 :(得分:0)

在声明String print = null;

时使用print