簡體   English   中英

如何使用listAdapter顯示Json值數組

[英]How to use a listAdapter to display Array of Json values

對於我為實習而構建的Android應用程序,我試圖顯示當前登錄用戶的票證列表,並將其顯示在ListView中。 讓我粘貼一些代碼,讓您了解我目前的位置:

    JSONArray finalResult = finalResultObject.getJSONArray(TAG_TICKETS);

    System.out.println("this is finalResult: " + finalResult);

    // creating new HashMap
    HashMap<String, String> map = new HashMap<String, String>();

    // adding each child node to HashMap key => value
    for (int i = 0; i < finalResult.length(); i++) {
        JSONObject c = finalResult.getJSONObject(i);

        if (c.has(TAG_CLIENT_NAME) && !c.isNull(TAG_CLIENT_NAME)) {
            String clientName = c.getString(TAG_CLIENT_NAME);
            map.put("client_name_map", clientName);
            // System.out.println(clientName);
        }
        if (c.has(TAG_PROJECT_NAME) && !c.isNull(TAG_PROJECT_NAME)) {
            String projectName = c.getString(TAG_PROJECT_NAME);
            map.put("project_name_map", projectName);
        }

        // adding HashList to ArrayList
        ticketList.add(map);
        // System.out.println(map);
    }

    ListAdapter adapter = new SimpleAdapter(SecondActivity.this, ticketList, R.layout.list_item, new String[] { "client_name_map", "project_name_map" }, new int[] { R.id.client_name,
            R.id.project_name });

    eventualListAdapter = adapter;

我在中間有幾張照片,把它們留在那里,讓你們看看我現在正在看什么。 我的問題是,我確實獲得了所需的項目數,但是它重復了同一項目(因此它確實遍歷了數組,但不更新值)。 我目前對Android完全陌生,因此仍在弄清楚要使用哪種適配器等。

最后,我將適配器傳遞給我在主線程中創建的eventualListAdapter,因此我可以輕松地調用它來更新UI(我不確定這是否是一種干凈的方法,只是嘗試獲取內容)此時工作)

預先感謝,丹尼斯

您對所有Itens使用相同的HashMap實例。 只需將HashMap的創建移動到循環內部即可:

            // adding each child node to HashMap key => value
            for (int i = 0; i < finalResult.length(); i++) {
                // creating new HashMap
                HashMap<String, String> map = new HashMap<String, String>();

                JSONObject c = finalResult.getJSONObject(i);

                if(c.has(TAG_CLIENT_NAME)&&!c.isNull(TAG_CLIENT_NAME)){
                    String clientName = c.getString(TAG_CLIENT_NAME);
                    map.put("client_name_map", clientName);
                    //System.out.println(clientName);
                }
                if(c.has(TAG_PROJECT_NAME)&&!c.isNull(TAG_PROJECT_NAME)){
                    String projectName = c.getString(TAG_PROJECT_NAME);
                    map.put("project_name_map", projectName);
                }

                // adding HashList to ArrayList
                ticketList.add(map);
                //System.out.println(map);
            }

暫無
暫無

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

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