2016-06-17 4 views
1

私が使用しているコードでは、コンパイラは最初のif文を過ぎず、 "The object was not found ..."というメッセージを返します。 私はparse.comから画像をダウンロードして、それをimageViewに配置しようとしています。添付されているのは私のコード、パースクラスのスキーマと私のxmlレイアウトです。どんな助けもありがとう。image from 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

誰でもすることができます任意のアイデアを持っているが助けて? – LizG

答えて

0

持っている:受信機のクラスで

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); 

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

このようにしてみてください。 私はあなたの既存のコードの変更いくつかの変更のような...送信クラスで

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()); 
      } 
     } 
    });