2015-05-05 2 views
2

Я использую Parse.com в своем проекте. Я хочу, чтобы создать свой собственный класс сущностей расширяет Синтаксическая объект, но у меня есть java.lang.ClassCastException: com.parse.ParseObject не может быть приведен к com.james.strongpeopleapp.RecipeКласс нельзя передать в ParseObject

@ParseClassName("Recipe") 
 
public class Recipe extends ParseObject { 
 

 
    public Recipe() { 
 
    } 
 

 
    public String getRecipeName(){ 
 
     return getString("RecipeName"); 
 
    }

Регистрация подкласса

public class ParseApp extends Application { 
 

 
    @Override 
 
    public void onCreate() { 
 

 
     ParseObject.registerSubclass(Recipe.class); 
 
     Parse.initialize(this, "XXXXXX", "XXXXXXX"); 
 

 
    } 
 
}

Исключение имеют место в getItemView() в адаптере

public class MainParseAdapter extends ParseQueryAdapter<Recipe> { 

private LayoutInflater layoutInflater; 

public MainParseAdapter(Context context) { 

    super(context, new QueryFactory<Recipe>() { 
     @Override 
     public ParseQuery<Recipe> create() { 
      ParseQuery query = new ParseQuery("OwnRecipeBook"); 
      return query; 
     } 
    }); 

    layoutInflater = (LayoutInflater) context 
      .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
} 

@Override 
public View getItemView(Recipe recipe, View v, ViewGroup parent) { 

    if(v == null){ 
     v = layoutInflater.inflate(R.layout.recipe_item, parent, false); 
    } 
    super.getItemView(recipe, v, parent); 

    TextView mName = (TextView) v.findViewById(R.id.recipe_tw); 
    mName.setText(recipe.getRecipeName()); 

    ParseImageView mImage = (ParseImageView) v.findViewById(R.id.recipe_imageView); 
    mImage.setParseFile(recipe.getRecipeImage()); 
    mImage.loadInBackground(); 

    return v; 
} 

public String getItemIdFromTable(int position){ 
    return getItem(position).getObjectId(); 
} 

}

+0

Нельзя отливать до ....? – Kayaman

+0

Прости. Исправлена! –

ответ

3

Сравните это:

@ParseClassName("Recipe") 

Для этого:

ParseQuery query = new ParseQuery("OwnRecipeBook"); 

Там есть несоответствие типов. Попробуйте использовать одно и то же имя. Эти типы могут выглядеть явно идентичными вам, но Parse необходимо точно знать, что вы пытаетесь сделать.

+1

Это действительно сработало. Мое собственное имя класса должно быть равно имени таблицы в БД на Parse.com. Благодаря! –

+0

Это не сработало для меня, и моя проблема идентична. – santafebound

+0

Нужно ли включать любое поле в вашу сущность, как существует в базе данных анализа? Так createdAt и т. Д.? – santafebound

Смежные вопросы