Deptlist sortieren

E

er4z0r

Neues Mitglied
0
Hallo,
Unten steht mein Code, der JSON ausließt und einfach dann in eine deptList schreibt und diese wird dann angezeigt.
seit Tagen beschäftigt mich die Frage auf welche Art und Weise ich meine deptList sortieren kann, kann mir da jemand behilflich sein?
Vielen Dank :)

Code:
       class TheTask extends AsyncTask<Void, Void, JSONArray> {
        InputStream is = null;
        String result = "";
        JSONArray jArray = null;

        ProgressDialog pd;

        @Override
        protected void onPostExecute(JSONArray result) {
            super.onPostExecute(result);
            pd.dismiss();
            ArrayList<String> list= new ArrayList<String>();

            DeptArrayAdapter adapter=new DeptArrayAdapter(MainActivity.this,R.id.title,deptList);
            final ListView listv=(ListView)findViewById(R.id.custom_list);
            listv.setAdapter(adapter);
            listv.setOnItemClickListener(new AdapterView.OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> a, View v, int position, long id) {
                    Object o = listv.getItemAtPosition(position);
                    JsonStrings newsData = (JsonStrings) o;
                    Toast.makeText(MainActivity.this, "" + newsData, Toast.LENGTH_LONG).show();
                }

            });

            listv.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
                public boolean onItemLongClick(AdapterView<?> arg0, View arg1,
                                               int pos, long id) {
                    Object o = listv.getItemAtPosition(pos);
                    final JsonStrings obj= (JsonStrings)o;
                    Date begindate=obj.ConvertToDate(obj.begin);
                    final Date enddate=obj.ConvertToEndDate(begindate,Integer.valueOf(obj.tage));


                    final Calendar begincalendar = Calendar.getInstance();
                    begincalendar.setTime(begindate);
                                    }
                            );
                    return true;
                };         


        }
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            ping = isReachableByPing("*****");
            pd = ProgressDialog.show(MainActivity.this, "",
                        "Laden...", true);

            if (ping==false){
                Toast.makeText(MainActivity.this, "Server nicht erreichbar" , Toast.LENGTH_LONG).show();
            }
            }


        @Override
        protected JSONArray doInBackground(Void... arg0) {

           if (ping==true){
               try {
                   HttpClient httpclient = new DefaultHttpClient();
                   HttpPost httppost = new HttpPost("*****");
                   HttpResponse response = httpclient.execute(httppost);
                   HttpEntity entity = response.getEntity();
                   is = entity.getContent();

               } catch (Exception e) {
                   Log.e("log_tag", "Error in http connection " + e.toString());
               }

               // Convert response to string
               try {
                   BufferedReader reader = new BufferedReader(new InputStreamReader(
                           is, "iso-8859-1"), 8);
                   StringBuilder sb = new StringBuilder();
                   String line = null;
                   while ((line = reader.readLine()) != null) {
                       sb.append(line + "\n");
                   }
                   is.close();
                   result = sb.toString();
                   writeToFile(result);


               } catch (Exception e) {
                   Log.e("log_tag", "Error converting result " + e.toString());
               }

               deptList.clear();
               try {
                   JSONArray array=new JSONArray(result);
                   for(int i=0;i<array.length();i++){
                       JSONObject j=array.getJSONObject(i);
                       JsonStrings d=new JsonStrings();
                       d.name=j.optString("Ortsname","");
                       d.kategorie=j.optString("Art","");
                       d.begin=j.optString("Datum","");
                       d.tage=j.optString("Tage","");
                       deptList.add(d);
                   }

               } catch (JSONException e) {
                   Log.e("log_tag", "No connection " + e.toString());
               }
           }
            else {
                   try {
                       JSONArray array=new JSONArray(readFromFile());
                       for(int i=0;i<array.length();i++){
                           JSONObject j=array.getJSONObject(i);
                           JsonStrings d=new JsonStrings();
                           d.name=j.optString("Ortsname","");
                           d.kategorie=j.optString("Art","");
                           d.begin=j.optString("Datum","");
                           d.tage=j.optString("Tage","");
                           deptList.add(d);
                       }

                   } catch (JSONException e) {
                       Log.e("log_tag", "Error parsing data " + e.toString());
                   }

           };
            return jArray;

        }
    }
 
Zuletzt bearbeitet:
Hey,
ich habe zwar von JSON absolut keine Ahnung, aber Arrays lassen sich mit verschiedensten Sortieralgorhytmen sortieren und da wird JSON nicht aus der Reihe fallen. (hoffe ich^^)
Mögliche Sortierverfahren sind:
-> merge sort
-> selection sort
-> insertion sort

Den Code brauche ich dir ja nicht von Wikipedia rüberkopieren. :laugh:
Hätte aber noch ein Projekt für dich, das die verschiedenen Verfahren auf die Laufzeit prüft. (Allerdings C++)

Kleine Frage am Rande:
Warum nimmst du keinen Vector?
 
Mit Collections #sort()?
Dabei hilft nen comperator.

LG. Dagobert

Gesendet von meinem GT-I9300 mit der Android-Hilfe.de App
 
Danke, das mit dem comperator hat funktioniert :)
 
Zuletzt bearbeitet:

Ähnliche Themen

B
Antworten
3
Aufrufe
1.305
swa00
swa00
M
  • michael1548
Antworten
3
Aufrufe
827
jogimuc
J
F
  • falko1985
Antworten
0
Aufrufe
1.075
falko1985
F
Zurück
Oben Unten