// Код
private void searchQuery(String strQuery, String link){
Toast.makeText(getContext(), "You searched for "+strQuery, Toast.LENGTH_SHORT).show();
JsonArrayRequest request = new JsonArrayRequest(Request.Method.POST, link, new Response.Listener<JSONArray>(){
@Override
public void onResponse(JSONArray jresponse) {
//displayResultInList(jresponse);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
}) {
@Override
protected Map<String, String> getParams() throws com.android.volley.AuthFailureError {
Map<String, String> parameters = new HashMap<String, String>();
parameters.put("query", strQuery);
return parameters;
}
};
RequestQueue rQueue = Volley.newRequestQueue(getActivity());
rQueue.add(request);
}
Эта конкретная строка: parameters.put ("query", strQuery); выдает ошибку и сообщение об ошибке говорит:
Переменная 'strQuery' доступна из внутреннего класса и должна быть объявлена как final.
Я провел некоторое исследование и прочитал некоторые учебники по запросам POST, используя Volley, и большая их часть использует не переменные, а строки в этой функции. Проблема с установкой переменной в качестве окончательной заключается в том, что пользователь печатает ее, поэтому эта переменная будет только иметь значение после отправки запроса.