私はVolleyのリクエストを受け取りましたが、変数に結果セットを取得しようとしていますが、「変数 'stuff'が内部クラスからアクセスされていることを宣言する必要があります最後の。"問題は、一度最終的に宣言すると、(tryブロックにしようとしているように)変数をレスポンスと同じにすることができないということです。私はこれについて議論する他の質問を見回しましたが、本当に私の状況に役立つものはありません。 コードはAndroid Volleyから変数にデータを設定
public ArrayList getStuff() {
ArrayList<JSONObject> stuff;
new Thread(new Runnable() {
@Override
public void run() {
// Instantiate the RequestQueue.
RequestQueue queue = MySingleton.getInstance(getApplicationContext()).getRequestQueue();
String url ="http://localhost:6000/stuff";
RequestFuture<String> future = RequestFuture.newFuture();
// Testing out blocking
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, future, future);
// Add the request to the RequestQueue.
queue.add(stringRequest);
try {
String response = future.get(30, TimeUnit.SECONDS);
stuff = response;
Log.i("tutors after blocked: ", tutors);
} catch(InterruptedException e) {
e.printStackTrace();
} catch(ExecutionException e) {
e.printStackTrace();
} catch (TimeoutException e) {
e.printStackTrace();
}
}
}).start();
// I want to be able to return 'stuff' here
return stuff;
}
であることを意味しますまだデータを入手してください。 – xiaoyuan
この 'final ArrayListを試してください stuff;' –
ken
申し訳ありませんが、これを言及すべきでしたが、最終として宣言すると、stuff = response(tryブロック内)を設定することはできません。それが私が直面していた問題です。私はそれを含めるために投稿を編集します。 – ProjectProgramAMark