2015-10-30 2 views
-1
public static List<NavItem> configuration() { 

      final List<NavItem> i = new ArrayList<NavItem>(); 

      //DONT MODIFY ABOVE THIS LINE 
      AsyncHttpClient client = new AsyncHttpClient(); 
      RequestHandle items = client.get("myurl", new AsyncHttpResponseHandler() { 

          @Override 
          public void onStart() { 
            // called before request is started 
          } 

          @Override 
          public void onSuccess(int statusCode, Header[] headers, byte[] response) { 

            String result = new String(response); 


            JSONObject obj = null; 
            JSONArray arr = null; 
            try { 
              obj = new JSONObject(result); 
              arr = obj.getJSONArray("items"); 
            } catch (JSONException e) { 
              e.printStackTrace(); 
            } 

            for (int s = 0; s < arr.length(); s++) { 
              String pltitle = null; 
              String plid = null; 
              try { 
                pltitle = arr.getJSONObject(s).getJSONObject("snippet").getString("title"); 
                plid = arr.getJSONObject(s).getString("id"); 

              } catch (JSONException e) { 
                e.printStackTrace(); 
              } 
              i.add(new NavItem(pltitle, R.drawable.icon_play, NavItem.ITEM, VideosFragment.class, plid + ",channelid")); 


            } 
          } 
          @Override 
          public void onFailure (int statusCode, Header[] headers, 
                byte[] errorResponse, Throwable e){ 
            // called when response HTTP status is "4XX" (eg. 401, 403, 404) 
          } 

          @Override 
          public void onRetry (int retryNo){ 
            // called when request is retried 
          } 
        } 

      ); 

      i.add(new NavItem("Tüm Videolar", R.drawable.icon_star, NavItem.EXTRA, VideosFragment.class, "asf")); 
      i.add(new NavItem("Facebook",R.drawable.icon_fb, NavItem.EXTRA, FacebookFragment.class, "asd")); 
      i.add(new NavItem("Twitter",R.drawable.icon_tw, NavItem.EXTRA, TweetsFragment.class, "asd")); 
      i.add(new NavItem("Favoriler", R.drawable.ic_action_favorite, NavItem.EXTRA, FavFragment.class, null)); 
      i.add(new NavItem("Oynatma Listeleri", NavItem.SECTION)); 



      //It's Suggested to not change the content below this line 


    // i.add(new NavItem("Settings", R.drawable.ic_action_settings, NavItem.EXTRA, SettingsFragment.class, null)); */ 

      //DONT MODIFY BELOW THIS LINE 

     return i; 

    } 

Мое приложение использует этот config.java для создания меню ящика его фактически статическое меню, но я сделать некоторые настройки и сделать его принимать данные из JSON, но после того, как он принимает данные его не показывая на ящик, но когда Я касаюсь элемента на ящике, данные отображаются, я думаю, что он обновляет его сам, как я могу сделать это автообновление при получении данных?Выдвижные меню из JSON не показаны элементы

ответ

0

Обратите внимание: вы получаете данные ящика с помощью AsyncHttpClient. Он выполнит и вызовет onSuccess() позже. Таким образом, функция configuration() возвращает Tüm Videolar, Facebook, Twitter, Favoriler, Oynatma Listeleri.

Для этого в конце onSuccess() позвоните в notifyDataSetChanged() вашего адаптера меню.

+0

Мой адаптер меню находится в другом java, это все коды config.java, вы можете написать полный код этой java или другой способ сделать это и спасибо за ответ –

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