dimanche 9 août 2015

How to use threads when retrieving data from database

So here is my methods that i am trying to implement with threads however when run it it keeps crashing and i have no idea why.. The logcat doesnt show me the errors as it would when something crashes which leaves me very puzzled..

So basically what im trying to do here is start my activity and while the user is looking at the activty, it starts populating the list in the background, if this helps explain what im trying to accomplish.

Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
        populateExerListView(exercises);
    }
};

public void loadDataFromDatabase(){
    Runnable r = new Runnable() {
        @Override
        public void run() {
            exercises = dbh.getAllExercises(bodypart_chosen);
            handler.sendEmptyMessage(0);
        }
    };

public void populateExerListView(final ArrayList<AdapterExercisesList.Exercise> exercises){

    ListAdapter edsAdapter = new AdapterExercisesList(this, exercises);
    exerciseListView = (ListView) findViewById(R.id.exerciseListView);

    exerciseListView.setAdapter(edsAdapter);

    exerciseListView.setOnItemClickListener(
            new AdapterView.OnItemClickListener() {
                @Override
                public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                    int pos = (Integer) view.getTag();
                    //gets the bodypart by passing in the pos
                    String exercise_chosen = exercises.get(pos).get_exerciseName();

                    Calendar c = Calendar.getInstance();
                    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
                    String formattedDate = df.format(c.getTime());
                    exerciseClicked(exercise_chosen, formattedDate);
                }
            }
    );
}

Aucun commentaire:

Enregistrer un commentaire