Rufe public class auf und aktualisiere list view in der activity

  • Antworten:4
  • OffenNicht stickyBentwortet
  • Forum-Beiträge: 49

27.05.2016, 11:59:29 via Website

hallo zusammen,

ich habe eine MainActivity mit einer custom list view.
in dieser activity ist folgende methode, welche die Datensätze aus der SQLite abruft und im list view anzeigt:

private void showList() {
    ArrayList<DatabaseListItems> databaseList = new ArrayList<>();
    databaseList.clear();


    String query = "SELECT * FROM " + DatabaseHelper.DATABASE_TABLE;

    Cursor c1 = dbHandler.selectQuery(query);
    if (c1 != null && c1.getCount() != 0) {
        if (c1.moveToFirst()) {
            do {
                DatabaseListItems databaseListItems = new DatabaseListItems();

                databaseListItems.setIdentifier(c1.getString(c1.getColumnIndex(DatabaseHelper.COLUMN_ID)));

                databaseList.add(databaseListItems);

            } while (c1.moveToNext()) ;
        }
        c1.close();
    }


    databaseListAdapter = new DatabaseListAdapter(getActivity(), databaseList);
    ListView.setAdapter(databaseListAdapter);
}

außerdem habe ich eine public class "Sync", welche ein http post an meine MYSQL Datenbank sendet und die erhaltenen Datensätze in die SQLite Datenbank schreibt:

public class Sync {


        // MYSQL => Database
        static class SyncMYSQL extends AsyncTask<String, String, String> {

            Context context;

            public SyncMYSQL(Context c) {
                this.context = c;
            }


            @Override
            protected String doInBackground(String... params) {
                try {

                       // DO SOMETHING


                } catch (MalformedURLException e) {
                    Log.e("-->", Log.getStackTraceString(e));
                } catch (IOException e) {
                    Log.e("-->", Log.getStackTraceString(e));
                }
                return null;
            }


            protected void onPostExecute(String result) {
                // DO SOMETHING
            }
}

nun möchte ich folgendes realisieren:
jedes Mal, wenn die MainActivity aufgerufen wird, soll die public class "Sync" ausgeführt werden und im Anschluss die List view der MainActivity aktualisiert werden.

Den Aufruf aus der MainActivity führe ich so aus:

@Override
public void onResume() {
   super.onResume();
   new Sync.SyncMYSQL(context).execute();
}

ich denke Mal das ich einen bestimmten Code in der "onPostExecute" der Sync class setzen muss, welcher mir die list view aktualisiert und die neuen Daten anzeigt. Aber wie?? :/

— geändert am 27.05.2016, 12:00:39

Antworten
  • Forum-Beiträge: 49

02.06.2016, 14:28:08 via Website

Hey, vielen Dank für die Antwort.
Habe deinen Artikel jetzt mehrfach gelesen , aber ich verstehe es einfach nicht :(

Könntest du mir dieses Mal anhand meines Beispiels erklären?

Antworten
Pascal P.
  • Mod
  • Blogger
  • Forum-Beiträge: 10.170

02.06.2016, 14:37:23 via App

Da ist doch ein Beispiel drin.
Was willst du denn wissen?
Wenn ich nicht weiß welchen Teil du nicht verstehst dann kann ich helfen.
Aber ich werde hier nicht alles was im Tut steht hier nochmal schreiben.

LG Pascal //It's not a bug, it's a feature. :) ;)

Antworten

Empfohlene Artikel