0

こんにちは、日付のヘッダーとその下のコンテンツを含むリストを作成しています。それぞれの内部にフィクスチャを含むJSONフィードがあり、各フィクスチャのデータを含む配列です。必要な1つの文字列は、ヘッダーを作成するためのmatchdateですが、それを実行すると、同じ一致日の複数のインスタンスが作成されるため、idたとえば、同じ日付の3つのヘッダーがあります。どうすればその情報を抽出し、この日付がすでに存在するかどうかを示す別の配列を作成して、次の日付を通過することができます。私はそれがかなり具体的な質問であることを知っていますが、誰かが少なくとも私を正しい方向に向けることができれば。前もって感謝します。

ここに私のフィードがあります

 fixturesArray = [{"awayteam":"Team 1","comp":"LGE","location":null,"attendance":null,"awayscore":null,"division":"Testing 1","homescore":null,"fixture_note":null,"kickoff":"15:30:00","awayteam_id":"64930","matchdate":"2012-07-07","awaypens":null,"homepens":null,"division_id":"5059","hometeam":"Team 3","hometeam_id":"64932"},{"awayteam":"Team 2","comp":"LGE","location":null,"attendance":null,"awayscore":null,"division":"Testing 1","homescore":null,"fixture_note":null,"kickoff":"15:00:00","awayteam_id":"64931","matchdate":"2012-07-07","awaypens":null,"homepens":null,"division_id":"5059","hometeam":"Team 4","hometeam_id":"64933"},{"awayteam":"Team 4","comp":"LGE","location":null,"attendance":null,"awayscore":null,"division":"Testing 1","homescore":null,"fixture_note":null,"kickoff":"15:00:00","awayteam_id":"64933","matchdate":"2012-07-14","awaypens":null,"homepens":null,"division_id":"5059","hometeam":"Team 1","hometeam_id":"64930"}]

これが私がこれまでに試したことです

Log.v("MyFix", "fixturesArray = " + fixturesArray);
       if(fixturesArray.length() < 1){

             TextView emptytext = (TextView) fixturesView.findViewById(R.id.TextView02);
             emptytext.setText("No Upcoming Fixtures Available");

       }else{
        try{   


            JSONArray datesArray = null;
            fixturesInfo = null;
            String matchDateTemp = "";

            for(int t = 0; t < fixturesArray.length(); t++){
               JSONObject matchDateDict = fixturesArray.getJSONObject(t);
               String matchDate = matchDateDict.getString("matchdate");
               JSONArray matchdates = matchdates.put(matchDate);

               Log.v("MyFix", "matchdate = " + matchDate);

               tempArray.put(t, fixturesArray);
               fixturesInfo.put(matchDate, tempArray);

            }

            Log.v("MyFix", "fixturesInfo = " + fixturesInfo);
            Log.v("MyFix", "tempArray = " + tempArray);


        }catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
4

1 に答える 1

0

データの一部を取得してから、追加する前に重複をチェックする新しい arraylist を繰り返します。

int matchCount=0;                                           // set count of matches to 0
String matchDate = matchDateDict.getString("matchdate");    // get the data to compare
for (int i = 0; i < uniqueDateArrayList.size(); i++){       // set loop to iterate through unique date arraylist
    if (matchDate.equals(uniqueDateArray[i])){              // compare the date to the date stored at position i
        matchCount++;                                       // if it matches increase the match count
    }
}

if (matchCount == 0) {
    uniqueDateArrayList.add(matchDate)                       // if there is no matching date, add it to the unique date arraylist
}

これにより、データ内のすべての一意の日付を含む配列リストが得られます。

于 2012-07-04T16:02:28.387 に答える