Форум программистов, компьютерный форум CyberForum.ru

SQlite Insert, delete, update - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Перевод между системами счисления http://www.cyberforum.ru/android-dev/thread1770409.html
Есть ли в adnroid встроенная функция перевода из одной системы счисления в другую?
Программирование Android Не могу получить ссылку на Фрагмент public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); WorkoutDetailFragment frag = (WorkoutDetailFragment)getFragmentManager().findFragmentById(R.id.frag_detail); frag.setWorkout(1); } } http://www.cyberforum.ru/android-dev/thread1770324.html
Как запускать приложение при блокировке телефона? Программирование Android
Подскажите пожалуйста, как организовать мне запуск приложения при выключении телефона, точнее при его блокировке? То есть не в фоне запускать, а полностью форму показать. Отличный пример - это как часы Always On у Samsung Galaxy S7, которые запускаются при выключении телефона. Проблема в том что я даже не знаю в какую сторону смотреть. И ещё хотел спросить какие мне права нужно будет запросить...
Программирование Android Получить список файлов сервера указав путь
Есть сервер на java рабочий. Принимает запросы от клиента и выводит список txt файлов прописанного в путе диска, затем по введенному названию тхт файла выводит его содержимое package test; import java.net.*; import java.io.*; import java.util.*; public class test {
Программирование Android Игровое приложение "Шашки" для мобильных устройств http://www.cyberforum.ru/android-dev/thread1769503.html
Какой алгоритм работы искусственного интеллекта используется для игры в шашки "человек против компьютера" и какие разделы математики касаются данной темы?
Программирование Android Как в jsoup получить абсолютный URL? Приветствую всех! прошу помощи в получении ссылки, на некоторой странице с адресом напр.: "http://almazy.com/catalog/almazy/almazy-granenye/1/" есть такой код: <div class="catalog"> <div itemscope itemtype="http://schema.org/Product" class="product-cont"> <a href="/catalog/almazy/almazy-granenye/almaz-granenyi-100karat.html"><p itemprop="name" class="product-name">Almaz... подробнее

Показать сообщение отдельно
Dark-VIN
1 / 1 / 0
Регистрация: 16.01.2013
Сообщений: 66

SQlite Insert, delete, update - Программирование Android

25.06.2016, 10:13. Просмотров 193. Ответов 3
Метки (Все метки)

Добрый день.
Возник такой вопрос.
Есть база с таблицей MailSettings. Она пустая. При первом сохранении настроек, все понятно (Insert).

В этой таблице всегда должен быть один ряд:
ID = 1, user = some_user, sender = some_sender, pass = some_pass, smtp = some_smtp, port = some_port, receiver = some_receiver

Как реализовать в одном методе и создание и перезапись единственной записи?

Мой костыль выглядит так:
onCreate

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    @Override
    public void onCreate(SQLiteDatabase db) {
 
        db.execSQL("CREATE TABLE IF NOT EXISTS MailSettings (" +
                "id INTEGER NOT NULL PRIMARY KEY," +
                "user TEXT," +
                "sender TEXT," +
                "pass TEXT," +
                "smtp TEXT," +
                "port TEXT," +
                "receiver TEXT);"
        );
 
    }

Загрузка настроек почты

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    public String[] loadMailSettings() {
        String[] result = new String[6];
 
        SQLiteDatabase sqLiteDatabase = getReadableDatabase();
        Cursor cursor = sqLiteDatabase.rawQuery("SELECT * FROM MailSettings", null);
 
        if (cursor.moveToFirst()) {
            int userColIndex = cursor.getColumnIndex("user");
            int senderColIndex = cursor.getColumnIndex("sender");
            int passColIndex = cursor.getColumnIndex("pass");
            int smtpColIndex = cursor.getColumnIndex("smtp");
            int portColIndex = cursor.getColumnIndex("port");
            int receiverColIndex = cursor.getColumnIndex("receiver");
            do {
                result[0] = cursor.getString(userColIndex);
                result[1] = cursor.getString(senderColIndex);
                result[2] = cursor.getString(passColIndex);
                result[3] = cursor.getString(smtpColIndex);
                result[4] = cursor.getString(portColIndex);
                result[5] = cursor.getString(receiverColIndex);
            } while (cursor.moveToNext());
 
        }
        cursor.close();
        sqLiteDatabase.close();
        return result;
    }

Сохранение настроек почты

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    public void saveMailSettings(String[] settings) {
        SQLiteDatabase sqLiteDatabase = getWritableDatabase();
 
        sqLiteDatabase.delete("MailSettings", null, null);
 
        contentValues.put("user", settings[0]);
        sqLiteDatabase.insert("MailSettings", null, contentValues);
        contentValues.put("sender", settings[1]);
        sqLiteDatabase.insert("MailSettings", null, contentValues);
        contentValues.put("pass", settings[2]);
        sqLiteDatabase.insert("MailSettings", null, contentValues);
        contentValues.put("smtp", settings[3]);
        sqLiteDatabase.insert("MailSettings", null, contentValues);
        contentValues.put("port", settings[4]);
        sqLiteDatabase.insert("MailSettings", null, contentValues);
        contentValues.put("receiver", settings[5]);
        sqLiteDatabase.insert("MailSettings", null, contentValues);
 
        sqLiteDatabase.close();
    }

Хоть так и работает, но все же можно ли как-то сократить код (навести красоту), убрать циклы четения (если возможно) и.т.д.

Если заменить insert на update по ID, будет ругаться. и это понятно, потому что изначально нет в таблице ничего.
А делать дополнительную проверку, пустая таблица или нет, будет только усложнять код.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru