#java #android #parse-platform
#java #Android #платформа синтаксического анализа
Вопрос:
Я успешно сохранил объект в parse data browser, и я могу видеть объект на веб-сайте, но у меня возникли проблемы с извлечением этого объекта в моем приложении для Android вот код, который я использую
public class MainActivity extends Activity implements OnItemSelectedListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Spinner spinner = (Spinner) findViewById(R.id.spinner1);
ParseAnalytics.trackAppOpened(getIntent());
spinner.setOnItemSelectedListener(this);
}
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position,
long id) {
Parse.initialize(this, "App ID", "Client ID");
ParseQuery<ParseObject> q = ParseQuery.getQuery("TestObject");
q.getInBackground("BRUlhLSW6d", new GetCallback<ParseObject>() {
@Override
public void done(ParseObject arg0, ParseException arg1) {
Log.d("test4", "good");
if (arg1 != null) {
Toast.makeText(this, arg0.getString("foo").toString(), Toast.LENGTH_LONG).show();
}
else {
Toast.makeText(this, "Help", Toast.LENGTH_LONG).show();
}
}
});
}
Комментарии:
1. Я вижу там более общую ошибку: вы должны вызывать Parse.initialize() в самом начале вашего приложения, а не каждый раз, когда выбирается элемент. Также убедитесь, что идентификатор приложения и идентификатор клиента на самом деле являются правильными ключами вашей учетной записи Parse.
2. @alessandro.francesconi все та же проблема, мой друг, приложение все еще не запускается
3. Приложение не запускается? так в чем же здесь настоящая проблема? Вызывается ли обратный вызов done() после запуска запроса? (другими словами … действительно ли вызывается Log.d(«test4», «good»))?
4. @alessandro.francesconi мое приложение останавливается в точке инициализации синтаксического анализа (исключение NoClassDefFound), но я на 100% уверен, что оба ключа верны.
5. Вы должны были написать это в первой строке вопроса 😉 Кажется, это скорее проблема со связыванием библиотеки синтаксического анализа в вашем проекте…
Ответ №1:
Не уверен насчет того, что вы ожидаете сделать в GetCallback, но… В методе done() вы (вероятно) проверяете «хороший результат», когда arg1 НЕ равен null. То есть, вместо этого, случай ошибки (arg1 является исключением).
Итак, скорее всего, ваш запрос работает, но вы пропустили ветку if.
Комментарии:
1. Я просто проверяю, смогу ли я извлечь объект из браузера данных. Я нашел этот код в Parse.com документация.
Ответ №2:
Я знаю, что вы делаете неправильно; у вас есть:
if (arg1 != null) {
//this means there was an error fetching the object
...
вместо
if (arg1 == null) {
//this means it succeeds
...
}
Комментарии:
1. Если это не решит вашу проблему, пожалуйста, предоставьте logcat и объясните подробнее; происходит сбой вашего приложения или оно просто не открывается?