Привет Я новичок в Android, и я застрял в этом problem.So это то, что я пытаюсь сделать, используя объект ответа залпВозвращает строку внутри метода, используемого для создания jsonObjectRequest
private void parseJSONResponse(JSONObject response)
{
int a = jsonObject.getInt("xxx"); //get 1st parameter
String mid = jsonObject.getString("Movieid"); //get an id
String murl = genrate(mid); //send id to genrate method which returns another url
String x=createmovieJSON(murl);//method to create JsonObjectRequest object using the new url and return string.
info.add(new information(a,x)); //pass int and string for generating a card layout
}
метод createmovieJSON выглядит следующим образом:
public String createmovieJSON(String strurl)
{
final String[] str=(null); //str[0] contains null
RequestQueue requestQueue = Singelton.instantinate().getRequestqueue();
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, strurl,
new Response.Listener<JSONObject>()
{
@Override
public void onResponse(JSONObject response)
{
str[0] = parseMovieResponse(response); //str[0] contains required string say'abc'
new Toastnotify(getApplicationContext(),str[0]);
}
},
new Response.ErrorListener(){...
});
requestQueue.add(jsonObjectRequest);
new Toastnotify(getApplicationContext(),str[0]);
return(str[0]); //str[0] contains null instead of abc
}
«окончательное String [] массив автоматически создается на исправление ошибки«Transform ул в конечный массив один элемент»в onResponse method.Why является его создания массива и не просто сделать str final? (я пробовал делать это вручную, но это дает такая же ошибка). Я знаю, что это внутренний класс, и поэтому я должен сделать его окончательным, но почему массив?
Как я могу отправить возвращенную строку в str [0] в onResponse обратно вызывающему методу в методе parseJSONResponse?
Pls прочитать http://stackoverflow.com/questions/31602042/android- java-how-to-delay-return-in-a-method – BNK