2013-03-22 4 views
0

В моем приложении, когда пользователь впервые входит, он может добавить две даты, а приложение составляет расчет дней. Затем этот результат записывается в базу данных, а также печатает в текстовом элементе в моей основной деятельности (называемой arxiki.class). Я хотел бы, чтобы приложение запоминало этот результат и печатало его каждый раз, когда пользователь переходит к основному действию.База данных Android для создания

Как я это сделал, каждый раз, когда пользователь меняет активность или закрывает приложение, в следующий раз приложение попросит его снова ввести даты и создать новые данные в моей базе данных. Как я могу получить всегда первый результат ? спасибо

мой код для сохранения результата даты:

DbXronia entry_add = new DbXronia(arxiki.this); 
      entry_add.open(); 
      entry_add.createEntry_xronia(meres); 
      entry_add.close(); 

ответ

1

Как я должен сделать это, каждый раз, когда пользователь изменяет активность или близко приложение, в следующий раз, когда приложение попросить его снова ввести даты и создает в новые данные в моей базе данных. Как я могу получить всегда первый результат? спасибо

Таким образом, вы хотите спросить пользователя о датах только один раз (только в первый раз, когда приложение выполнено lauchned). Этот «алгоритм» не должен быть сложным. Вам нужен какой-то механизм, когда пользователь вводит даты и значения записываются в базу данных, которые сохраняют состояние «даты сохраняются».

Вы можете использовать его для достижения цели SharedPreferences. После того, как значения записываются в базу данных, вы сохраняете «это действие» в SharedPreferences, а затем, когда пользователь запускает приложение в следующий раз, просто создайте условие, которое перенесет ваше действие.

псевдокод:

// saving action 
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
prefs.edit().putBoolean("isInserted", true); 

// retrieve value 
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 
boolean isInserted = prefs.getBoolean("isInserted", false); 

if (!isInserted) { 
    // user can add dates 
} 
else { 
    // do your stuff 
} 
0

Какой базы данных вы используете на внутреннем интерфейсе - SQLite?

Если вы используете SQLite, вы можете просто заказать данные, которые вы извлекаете из базы данных по автоинкрементному * _id * coloumn. В качестве альтернативы вы можете использовать какую-то временную метку, которую вы храните в базе данных при вставке новой записи. запрос будет выглядеть примерно так:

Cursor c = db.query (true, table, new String[]{dataColumn}, null, null, null, null, "_id DESC", "LIMIT 1") 
if (c.moveToFirst()) { 
    String result = c.getString(0); 
} 
c.close(); 
+0

да я использую SQLite db.this код будет записан в моем главном классе или в классе дб ​​создателя? –

+0

Предположим, вы должны добавить какой-то метод 'getEntry()' в ваш класс базы данных, где вы вызываете код. Просто отправьте свой класс базы данных, и я покажу вам, как его расширить. – fish

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