Я пытаюсь создать резервную копию данных в своем приложении, нажав кнопку «Сохранить» - каждый раз, когда я запускаю приложение и нажимаю эту кнопку после ввода некоторого текста, он создает новое поле идентификатора объекта в базе данных синтаксического анализа (он обновляет тот же идентификатор, если я не закрываю приложение).Как предотвратить создание нового идентификатора объекта каждый раз, когда я перезапускаю приложение в Parse?
Это предотвращает получение тех же данных, которые были сохранены при перезагрузке приложения.
Я хочу иметь возможность обновлять данные каждый раз на одном ID объекта после перезапуска приложения. Это возможно? Или это будет возможно только в том случае, если я использую функцию Parse User?
Кроме того, я хочу, чтобы данные извлекались автоматически при запуске приложения - вместо текущего, когда он извлекается только при обновлении.
Пожалуйста, помогите!
Вот мои соответствующие фрагменты кода для основного файла Java, где «seteditTxt» является идентификатор элемента EditText, где записаны данные и извлеченного на:
public class MyActivity extends ActionBarActivity
implements NavigationDrawerFragment.NavigationDrawerCallbacks {
String eventTxt;
EditText seteditTxt;
ParseObject Events = new ParseObject("Events");
@
Override
protected void onCreate(Bundle savedInstanceState) {...
}
@
Override
public boolean onOptionsItemSelected(MenuItem item) {
seteditTxt = (EditText) findViewById(R.id.seteditTxt);
int id = item.getItemId();
if (id == R.id.action_refresh) {
updatelocalData();
updateData();
}
if (id == R.id.action_example) {
eventTxt = seteditTxt.getText().toString();
Events.put("EventName", eventTxt);
Events.saveEventually(new SaveCallback() {
public void done(ParseException e) {
if (e == null) {
// Saved successfully.
Toast.makeText(getApplicationContext(), "Saved", Toast.LENGTH_SHORT).show();
} else {
// The save failed.
Toast.makeText(getApplicationContext(), "Failed to Save", Toast.LENGTH_SHORT).show();
}
}
});
Events.pinInBackground();
}
return super.onOptionsItemSelected(item);
}
public void updateData() {
ParseQuery <ParseObject> query = ParseQuery.getQuery("Events");
query.getInBackground("d51GM3syxp", new GetCallback <ParseObject>() {
public void done(ParseObject Events, ParseException e) {
if (e == null) {
// gameScore will be your game score
String Txt = Events.getString("EventName");
seteditTxt.setText(Txt);
} else {
// something went wrong
System.out.print("Error in parse retrieving");
}
}
});
}
public void updatelocalData() {
ParseQuery <ParseObject> query = ParseQuery.getQuery("Events");
query.fromLocalDatastore();
query.getInBackground("d51GM3syxp", new GetCallback <ParseObject>() {
public void done(ParseObject Events, ParseException e) {
if (e == null) {
// object will be your game score
String Txt = Events.getString("EventName");
seteditTxt.setText(Txt);
} else {
// something went wrong
System.out.print("Error in locally retrieving");
}
}
});
}
}
Анализировать Java файл:
public class ParseActivity extends Application{
@Override
public void onCreate() {
super.onCreate();
// Enable Local Datastore.
Parse.enableLocalDatastore(this);
Parse.initialize(this, "YZG663Azd0yq10GZFLsB8dt5IMtIfKyNEPFf1Ftf", "bEKK3biC93WFWNLInijqJwnWHJCM8Kl7guPViwqQ");
}
}
Я искал множество веб-сайтов и учебных пособий, но я, похоже, не понимаю, как должен следовать этот метод.
Заранее благодарен!
Мой поиск был в моем фрагменте, поэтому я добавил его в onCreateview фрагмента, и он работал для получения данных автоматически. Для получения определенного события с использованием идентификатора пользователя - отличная идея. С этим мне не нужно было бы использовать функциональность пользователя синтаксического анализа, правильно? Спасибо, тонна попробует это сейчас. –
Да, вам не нужно использовать пользовательскую функциональность, однако для вас это упростит, если вы решите его использовать. – Urban