2016-08-18 47 views
0

我从[{}](格式)在一次拍摄中从服务器获取所有数据。 它像要加载来自服务器的数据在标签

[{"id":"1","name":"akash","desc":"desc","category":"Firsttab"}, {"id":"2","name":"ajay","desc":"desc2","category":"Secodntab"}] 

SQLite中&现在我存储的数据让所有的数据从sqlite的两个标签。现在我需要在第一个标签& ajay中使用desc加载akash,并在第二个选项卡中使用desc2。帮帮我。

编码区

adapter = new ViewPagerAdapter(getSupportFragmentManager()); 

    List<TabData> tabdata = db.getAllCategory(); 

    Log.d("TabData", "check: "+tabdata); 
    for(TabData tab : tabdata) { 

     TabData data = new TabData(tab.getName(), tab.getType()); 
     tabData.add(data); 

     Fragment appFrf = new AppetiserBar(); 

     adapter.addFragment(appFrf, tab.getName()); 

     adapter.notifyDataSetChanged(); 
     viewPager.setAdapter(adapter); 

     tabLayout.setupWithViewPager(viewPager); 

     adapter.notifyDataSetChanged(); 
    }  

而且

viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() { 
     @Override 
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { 

     } 

     @Override 
     public void onPageSelected(int position) { 
      Log.d("PageSelected", "Check: "+position); 

     } 

     @Override 
     public void onPageScrollStateChanged(int state) { 

     } 
    }); 

而在片段中获取数据为:

List<AppetiserData> rest_list = db.getAllDatarl(); 

    Log.d("RestaurantModel: ", "Check: "+rest_list); 

    cardList.clear(); 
    for(AppetiserData data : rest_list){ 
     AppetiserData models = new AppetiserData(data.getName(), 
       data.getDescription(), data.getCategory()); 
     cardList.add(models); 
    } 
+0

发布您的代码为这两个片段 – Jas

+0

片段是动态的&在上面的编码区部分我已经显示了我创建动态片段的方式。休息所有的代码是基本的Android片段 – Akash

+0

它只是一个例子,我已经采取了两个标签它可以是五或十甚至动态。如果我将从服务器获得5个标签,那么我将获得所有片段的数据,并且我必须为特定片段加载特定数据。需要一种前进的方法 – Akash

回答

0

你所得到的数据是在JSONArray的形式。你可以在活动中解析它们,并按照你的意愿将它们分发到片段中。 对其进行解析:

try { 
    ArrayList<String> allData= new ArrayList<String>(); 
    JSONArray yourArray = jsonResponse.getJSONArray(your json array); 
    for(int i=0;i<yourArray.length();i++){ 
     JSONObject person = yourArray.getJSONObject(i); 
     String name = person.optString("name");//this will return akash for i=0 
     allData.add(name); 
    } 

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

我直接在浏览器写了这个,但它应该工作的罚款。

+0

不,我首先在SQLite数据库中插入来自服务器的所有数据,并且我只需要从SQlite数据库获取所有数据。 Fragments上没有API调用 – Akash

相关问题