2016-08-18 3 views
0

[{}](フォーマット)で1回の撮影でサーバからのすべてのデータを取得しています。サーバからのデータをタブに読み込む

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

よう ITSは今、私は両方のタブでSqliteをからすべてのデータを取得SQLiteの&にデータを格納しています。今度は最初のタブのdescでakashをロードする必要があります。& ajayを2番目のタブの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

フラグメントは動的です。上記のコーディングエリアのセクションで、私は動的フラグメントを作成する方法を示しています。残りのすべてのコードは、アンドロイドのフラグメントの基本です – Akash

+0

私は2つのタブを取ったそのちょうど例それは5または10でも動的にすることができます。 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データベースからすべてのデータを取得する必要があります。フラグメントのAPI呼び出しがありません – Akash

関連する問題