2016-06-17 3 views
1

С кодом, который я использую, компилятор не пропустил его после первого оператора if и возвращает сообщение «Объект не найден ...». Я пытаюсь загрузить изображение с сайта parse.com и поместить его в изображение. Прикреплен мой код, схема для класса синтаксического анализа и мой макет xml. Любая помощь будет оценена по достоинству.Извлечение изображения из 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()); 
      } 
     } 
    });