1

タイトルがすべてを物語っています。JsonObjectRequest 内でコンパイル エラーが発生します

これは本当に簡単な修正だと確信していますが、それを書く方法が正確にはわかりません。私はまだアンドロイド開発の初期段階にあるので、初心者であることを許してください。:)

これがコードです。

public class Api {

public static final String SEARCH_URL = "http://api.worldoftanks.ru/2.0/account/list/?application_id=171745d21f7f98fd8878771da1000a31&search=";
private RequestQueue mQueue;
private ArrayList<String> mNames;

public Api(Context context) {
    mQueue = Volley.newRequestQueue(context);
}

public ArrayList<String> searchPlayer(String name) {


    JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, SEARCH_URL + name, null, new Response.Listener<JSONObject>() {
        @Override
        public void onResponse(JSONObject json) {

            try {
                JSONArray data = json.getJSONArray("data");
                for (int i = 0; i < data.length(); i++) {
                    JSONObject c = data.getJSONObject(i);

                    String n = name.getString("nickname");
                    mNames.add(n);
                }

            } catch (JSONException e) {
                e.printStackTrace();
            }


        }
    }, new Response.ErrorListener() {
        @Override
        public void onErrorResponse(VolleyError error) {
            Log.d("Error", error.getMessage());
        }
    }
    );

    mQueue.add(jsonObjectRequest);
    return mNames;
}

}

4

2 に答える 2

5

エラーが言うように、交換してください

public ArrayList<String> searchPlayer(String name)

public ArrayList<String> searchPlayer(final String name)

final引数は、メソッド内のコードによって変更されないように宣言する必要があります。これにより、応答リスナー内で安全に使用できます。

于 2013-11-09T11:41:29.470 に答える
3

final引数宣言に追加します。

public ArrayList<String> searchPlayer(final String name)
于 2013-11-09T11:41:16.450 に答える