我有下面的代碼,因爲從本教程採取:http://developer.android.com/training/volley/simple.html覆蓋方法無法識別
final TextView mResponse = (TextView) findViewById(R.id.response);
RequestQueue queue = Volley.newRequestQueue(this);
String url = "http://www.example.com/";
// Request a string response from the provided URL.
StringRequest stringRequest = new StringRequest(Request.Method.GET, url,
new Response.Listener() {
@Override
public void onResponse(String response) {
// Display the first 500 characters of the response string.
mResponse.setText("Response is: "+ response.substring(0,500));
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
mResponse.setText("That didn't work!");
}
});
然而,儘管onResponse()方法的匿名監聽器類中實現,響應。 Listener以紅色加下劃線,出現以下錯誤:「'派生自Listener的匿名類'必須被聲明爲抽象或在'Listener'中實現抽象方法'onResponse(T)'。我不完全確定它爲什麼沒有看到我完成了這個。
這工作就像一個魅力,謝謝!我現在的問題是,如何將返回的'response'字符串保存到我可以在程序中使用的變量中?內部類顯然需要將它們訪問的變量聲明爲「final」,這會阻止我將「response」的值保存到預先聲明的字符串中。 – somecbusnerd 2014-10-18 21:14:06
您將無法將新值賦給最終的String或者用一個字段響應爲Listener創建一個類,或者像你的問題中的代碼一樣設置響應。請注意Java中final關鍵字的含義 - 您聲明最終的TextView mResponse,以便您不能重新分配引用,但可以調用setter。 – bart 2014-10-20 14:20:54