2016-01-07 4 views
0

В моем приложении я хочу связать Json response с целевым классом, используя Volley library, но я не могу этого сделать.Как связать ответ Json с классом с помощью volley

Мой код:

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    registerComponentDownload(GalleryParser.class, Const.api.URL_GALLERY); 
}//on create 

private void makeJsonObjectRequest(final Class<? extends BaseModel> className, String urlJsonArry) { 

    JsonObjectRequest jsonObjectRequest=new JsonObjectRequest(Request.Method.GET,urlJsonArry,null, new Response.Listener<JSONObject>() { 
     @Override 
     public void onResponse(JSONObject response) { 
      //start gallery activity 
     } 
    } , new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 

     } 
    }); 
    AppController.getInstance().addToRequestQueue(jsonObjectRequest); 
} 
private void registerComponentDownload(Class<? extends BaseModel> aClass, String url) { 
    makeJsonObjectRequest(aClass,Const.buildUrl(url)); 
} 

}

Можно ли получить ответ в классе? Или пытаюсь в неправильном направлении.

Пожалуйста, предложите мне.

спасибо.

+0

передать объект связки, когда u начните свою деятельность в галерее и получите ее в действии галереи. – Mohit

+0

Перейдите сюда http://www.michenux.net/android-volley-and-gson-tutorial-797.html – insomniac

+0

Еще один вариант - создать класс pojo и сохранить все данные json после получения ответа, а затем позже используйте его везде, где вам это нужно. – Mohit

ответ

0

Я думаю, вы можете обратиться к этому с помощью залпа с библиотекой gson сделать запрос Gson https://developer.android.com/training/volley/request-custom.html

+0

получить ответ после этого вам нужно преобразовать ответ в классе с помощью библиотеки gson –

+0

передать класс классу GsonRequest над классом, вернет объект класса, прошедшего ранее в обратном вызове успеха – MinFu

0

Добавить Gson библиотеку в вас Lib папку. это класс формиат

public class TestData { 

    public int success; 
    public String message; 
    public TestDatail data; 
    public class TestDatail 
    { 
     public int is_friend; 
     public int is_following; 
    } 
} 

Gson gs=new Gson(); 
return gs.fromJson(your Volley Library Response,TestData.class); 
+0

, вам нужно создать класс согласно вы ответите –

+0

Позвольте мне попробовать. –

0

Метод 1: Использование объекта Bundle -> В моем случае я передаю массив из активности А в активность B-то вроде этого:

public void onResponse(JSONObject response) 
     { 
     ArrayList<Images> imagesArrayList = new ArrayList<Images>(); 
      try{ 
      if(response.has("images")) 
      { 
      JSONArray imagesList = response.getJSONArray("images"); 

       Intent i = newIntent(ActivityA.this,ActivityB.class); 
        i.putExtra("jsonArray",imagesList.toString()); 
        startActivity(i); 
        } 
       }catch(JSONException e){} 
      } 

И в методе onCreate Activity B проверьте, чтобы переданный пакет выглядел примерно так:

Intent i = getIntent(); 
    if (i.hasExtra("jsonArray")) 
    { 
     String jsonArray = i.getStringExtra("jsonArray"); 
    try { 
     JSONArray array = new JSONArray(jsonArray); 
     // do whatever you need with this array 

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

Метод 2: Использование POJO/добытчики & инкубационного

  1. Создать POJO
  2. Извлеките необходимые данные, как только вы получите ответ, используя залп.
  3. установить его, используя сеттеры pojo.
  4. начало деятельности галереи.
  5. получить данные с помощью геттеров pojo.
+0

Я не хочу передавать данные с помощью пакета, потому что есть 10 URL-адресов, и каждый URL-адрес будет привязан для разных классов. –

+0

Не мог получить вашу точку. У вас есть проблемы с этим подходом? Будьте конкретны, если таковые имеются. – Mohit

+0

Я хочу получить/привязать данные для 10 видов деятельности, таких как галерея, контакт, документы .. на заставке. –

Смежные вопросы