2016-06-17 17 views
1

Mit dem Code, den ich verwende, übergibt der Compiler es nicht nach der ersten if-Anweisung und gibt die Nachricht "Das Objekt wurde nicht gefunden ..." zurück. Ich versuche, ein Bild von parse.com herunterzuladen und es in einem ImageView zu platzieren. Angehängt ist mein Code, das Schema für die Parse-Klasse und mein XML-Layout. Jede Hilfe wäre willkommen.Abrufen eines Bildes von parse.com

final ParseImageView mImage = (ParseImageView) findViewById(R.id.image); 

    ParseQuery<ParseObject> query = new ParseQuery<>("Appetizers"); 
    query.addAscendingOrder("appetizer"); 
    query.getInBackground("imageFiles", new GetCallback<ParseObject>() { 
     @Override 
     public void done(ParseObject object, com.parse.ParseException e) { 
      if (object == null) { 
       Log.d("test", "The object was not found..."); 

      } else { 
       Log.d("test", "Retrieved the object."); 
       final ParseFile fileObject = (ParseFile) object.get("imageFiles"); 
       fileObject.getDataInBackground(new GetDataCallback() { 
        public void done(byte[] data, ParseException e) { 
         if (e == null) { 
          Log.d("test", "We've got data in data."); 
          // use data for something 
          Bitmap bmp = BitmapFactory.decodeByteArray(data, 0,data.length); 
          mImage.setImageBitmap(bmp); 

         } else { 
          Log.d("test", "There was a problem downloading the data."); 
         } 
        } 
       }); 
      } 
     } 
    }); 

parse.com

content_appetizer_recipe.xml

design of layout

+0

Wer irgendwelche Ideen haben kann, Hilf mir? – LizG

Antwort

0

In der Sendeklasse:

ParseObject po = mAppetizers.get(position); // get position 
String ID = po.getObjectId().toString(); 

Intent intent = new Intent(Appetizer.this, AppetizerRecipe.class); 

intent.putExtra("ID", ID); 
startActivity(intent); 

In der Klasse des Empfängers:

final ParseImageView mImage = (ParseImageView) findViewById(R.id.image); 
String ID = getIntent().getStringExtra("ID"); 

     ParseQuery<ParseObject> getimage = new ParseQuery<>("Appetizers"); 
    getimage.addAscendingOrder("appetizer"); 
    getimage.whereEqualTo("ID", ID); 
     Log.d("AppetizerRecipe2", "object: " + ID); 
    getimage.getInBackground(ID, new GetCallback<ParseObject>() { 
     @Override 
     public void done(ParseObject object, ParseException e) { 
      if (e == null) { 
       Log.v("what is e?", "e = " + e); 
       // success 
       final ParseFile fileObject = (ParseFile)object.get("imageFiles"); 
       fileObject.getDataInBackground(new GetDataCallback() { 
        public void done(byte[] data, ParseException e) { 
         if (e == null) { 
          Log.d("test", "We've got data in data."); 
          // use data for something 
          Log.d("test", "Get your image..." + fileObject.getUrl()); 
        Picasso.with(getBaseContext()).load(fileObject.getUrl()).placeholder 
          (R.drawable.ic_launcher).into(mImage); 

         } else { 
          Log.d("test", "There was a problem downloading the data."); 
         } 
        } 
       }); 

      } else { 
       // fail 
       Log.d("test", "Error Message..." + e.getMessage()); 
      } 
     } 
    }); 
0

versuchen, auf diese Weise. ich habe ändern einige Änderungen in Ihrem vorhandenen Code wie ...

ParseQuery<ParseObject> query = new ParseQuery<ParseObject>("Appetizers"); 
    query.addAscendingOrder("appetizer"); 

    query.findInBackground(new FindCallback<ParseObject>() { 

     @Override 
     public void done(List<ParseObject> objects, ParseException e) { 
      // TODO Auto-generated method stub 

      if (e == null) { 
       // success 
       for (ParseObject parseObject : objects) { 
        ParseFile fileObject = (ParseFile) parseObject.get("imageFiles"); 

        Log.d("test", "get your image ... " + fileObject.getUrl()); 
       } 
      } else { 
       // fail 
       Log.d("test", "error Message... " + e.getMessage()); 
      } 
     } 
    }); 
Verwandte Themen