2016-07-11 14 views
0

Kann mir jemand sagen, wie ich den Fortschrittsdialog beim Abrufen von Daten aus der Parse-Datenbank anzeigen kann? DankeFortschrittsdialog in findInBackground für syntaktische Analyse ohne Verwendung von Thread oder AsynchTaks

public void fetch() { 

    ParseQuery<ParseObject> query = ParseQuery.getQuery("Phrase"); 
    try { 
     query.setLimit(1000); 

     progress_Dialog.setTitle("Parse Library Download"); 

     progress_Dialog.setMessage("Downloading Please wait...."); 

     progress_Dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL); 

     progress_Dialog.show(); 

     query.findInBackground(new FindCallback<ParseObject>() { 
            @Override 
            public void done(List<ParseObject> greeting_list, ParseException e) { 

             parse_count = greeting_list.size(); 

             if (e == null) { 
              for (ParseObject obj : greeting_list) { 


               image_file = obj.getParseFile("image"); 

               try { 
                bmp = BitmapFactory.decodeByteArray(image_file.getData(), 0, image_file.getData().length); 

                bmp = getResizedBitmap(bmp, 500, 500); 

                ByteArrayOutputStream stream = new ByteArrayOutputStream(); 

                bmp.compress(Bitmap.CompressFormat.PNG, 100, stream); 

                image_array = stream.toByteArray(); 
               } catch (ParseException e1) { 
                e1.printStackTrace(); 
               } 

               audioFile = obj.getParseFile("audio"); 

               try { 
                counter = dBhelper.insert_TextData(obj.getString("english"), obj.getString("italian"), image_array, audioFile.getData(), obj.getString("category")); 

                System.out.println(counter); 

                progress_Dialog.setProgress(progressStatus); 

                progressStatus++; 


               } catch (ParseException e1) { 
                e1.printStackTrace(); 
               } 
              } 
              progress_Dialog.dismiss(); 

              System.out.println("ALL DATA FETCHED"); 

             } else { 

              Log.d("Error", "" + e.getMessage()); 
              e.printStackTrace(); 
             } 
            } 
           } 
     ); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

Zeigen Sie, was u versucht haben? –

+0

mein Fortschritt.Setprogress Methode funktioniert nicht, ich werde Code unten können Sie bitte haben. – user970481

Antwort

0

Sie können eine ParseQuery verwenden, um diese Daten abzurufen. Lesen Sie Parse Android-Handbuch zur Verwendung von Queries

Mit Fortschrittsdialog Verwendung asyntask Prüfung unter Beispiel:

private class RemoteDataTask extends AsyncTask<Void, Void, Void> { 
    @Override 
    protected void onPreExecute() { 
     super.onPreExecute(); 
     // Create a progressdialog 
     mProgressDialog = new ProgressDialog(MainActivity.this); 
     // Set progressdialog title 
     mProgressDialog.setTitle("Parse.com Custom ListView Tutorial"); 
     // Set progressdialog message 
     mProgressDialog.setMessage("Loading..."); 
     mProgressDialog.setIndeterminate(false); 
     // Show progressdialog 
     mProgressDialog.show(); 
    } 

    @Override 
    protected Void doInBackground(Void... params) { 
     // Create the array 
     worldpopulationlist = new ArrayList<WorldPopulation>(); 
     try { 
      // Locate the class table named "Country" in Parse.com 
      ParseQuery<ParseObject> query = new ParseQuery<ParseObject>(
        "Country"); 
      // Locate the column named "ranknum" in Parse.com and order list 
      // by ascending 
      query.orderByAscending("ranknum"); 
      ob = query.find(); 
      for (ParseObject country : ob) { 
       // Locate images in flag column 
       ParseFile image = (ParseFile) country.get("flag"); 

       WorldPopulation map = new WorldPopulation(); 
       map.setRank((String) country.get("rank")); 
       map.setCountry((String) country.get("country")); 
       map.setPopulation((String) country.get("population")); 
       map.setFlag(image.getUrl()); 
       worldpopulationlist.add(map); 
      } 
     } catch (ParseException e) { 
      Log.e("Error", e.getMessage()); 
      e.printStackTrace(); 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void result) { 
     // Locate the listview in listview_main.xml 
     listview = (ListView) findViewById(R.id.listview); 
     // Pass the results into ListViewAdapter.java 
     adapter = new ListViewAdapter(MainActivity.this, 
       worldpopulationlist); 
     // Binds the Adapter to the ListView 
     listview.setAdapter(adapter); 
     // Close the progressdialog 
     mProgressDialog.dismiss(); 
    } 
} 
+0

Danke für Ihre Antwort Ich habe erfolgreich Daten abgerufen, aber ich muss wissen, wie Fortschrittsdialog mit Fortschritt beim Abrufen von Daten aus Parse-Datenbank anzuzeigen. Danke – user970481

+0

Chirag Vielen Dank für Ihre Hilfe, ich schätze wirklich, dass Sie Ihnen helfen, ein Leben zu retten, das ich mit diesem Problem für eine Weile kämpfte, jetzt endlich getan es mit Ihrer Hilfe. – user970481