簡體   English   中英

在選項卡中加載來自服務器的數據

[英]To Load data coming from server in Tabs

我一次以[{}](格式)從服務器獲取所有數據。 就像是

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

現在,我將數據存儲在SQlite中,並從兩個選項卡中的Sqlite獲取所有數據。 現在,我需要在第一個選項卡中用desc加載akash,在第二個選項卡中用desc2加載ajay。 幫幫我。

編碼區

 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) {

        }
    });

在Fragment上獲取數據為:

 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);
    }

您獲取的數據采用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();
}

我是直接在瀏覽器中編寫的,但是應該可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM