Много строчное редактирование таблицы базы данных в андроиде

Не могу найти примера стандартным способом вывести строки таблицы sqlite (сразу несколько строк), внести изменения (вставить, удалить, изменить) и сохранить изменения в той же таблице.

Таблица содержит столбцы данных разных типов.

    "create table IF NOT EXISTS elements ("+
            "_id    INTEGER  primary key autoincrement, "+  
            "name   TEXT,"+      
            "substitution TEXT NOT NULL,"+    
            "ciklos TEXT,"+       
            "deg INTEGER, "+      
            "pairing_num INTEGER, 
            "switchboard_num INTEGER, "
            "center_num INTEGER, "+
            "iteration  INTEGER NOT NULL"+
            ");"

Вывести строки для просмотра нет проблем, есть SimpleCursorAdapter адаптер

     String[] from, zag;  int[] to= {0};
        final LayoutInflater factory = getLayoutInflater();
        LinearLayout ll = null;
        String SQL = sqlSelect[indTable];

        mCursor = db.rawQuery(SQL, null);
    switch (indTable) {
            case 0:
            case 1:
            case 2:
                zag = new String[] { "Выражение через образующие", "Подстановка", "Порядок элемента", "На какой итерации получена"};
                from = new String[] { "name", "substitution", "deg", "iteration"};
                to = new int[]  {R.id.db1, R.id.db2, R.id.db3, R.id.db4};
                colCount  = 4;  // колонок в таблицк
                mCursorAd = new SimpleCursorAdapter(this, R.layout.db_item4, mCursor, from, to, 0);
                ll = (LinearLayout) factory.from(getApplication()).inflate(R.layout.db_item4, null);
                break;

            case 3:
    // ......
 tableListView.setAdapter(mCursorAd);

В зависимости от переменной indTable выволятся различные наборы колонок таблицы. и разметка, как выводить зависит от набора колонок, вот одна из разметок:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:choiceMode="singleChoice"
android:listSelector="#500000"
android:dividerHeight="10dp"
android:orientation="horizontal">

<EditText
    android:id="@+id/db1"
    android:layout_width="100dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_weight="0.1"
    android:fontFamily="sans-serif"
    android:enabled="true"
    android:gravity="start"
    android:inputType="text"
    android:maxLines="1"
    android:minLines="1"
    android:singleLine="true" />

<EditText
    android:id="@+id/db2"
    android:layout_width="750dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_weight="0.40"
    android:enabled="true"
    android:fontFamily="sans-serif"
    android:gravity="start"
    android:inputType="text"
    android:maxLines="1"
    android:minLines="1"
    android:singleLine="true"
    android:textColor="#0000F0" />

<CheckBox
    android:id="@+id/db3"
    android:layout_width="150dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="10dp"
    android:layout_weight="0.10"
    android:gravity="start"
    android:text="Удалить?"
    android:maxLines="1"
    android:choiceMode="singleChoice"
    android:textColor="#0000F0" />
</LinearLayout>

В меню есть кнопки для вставки и удаления:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.ea.groupbuilder.BuildActivity">
    <item
        android:id="@+id/action_add"
        android:orderInCategory="100"
        android:icon="@drawable/help"
        android:title="Новая подстановка"
        android:visible="true"
        app:showAsAction="ifRoom|withText" />
    <item
        android:id="@+id/action_delete"
        android:orderInCategory="100"
        android:icon="@drawable/ic_set"
        android:title="Удалить подстановку"
        android:visible="true"
        app:showAsAction="ifRoom|withText" />

    <item
        android:id="@+id/action_create"
        android:orderInCategory="100"
        android:icon="@drawable/ic_save"
        android:title="Создать"
        android:visible="true"
        app:showAsAction="ifRoom|withText" />

</menu>

По кнопке Новая подстановка должна добавляться новая строка, по кнопке Удалить подстановку - должны удалиться отмеченные строки. По кнопке Сохранить должны сохраниться изменения в этой же таблице.

Пожалуйста, дайте хотя бы ссылку на решение такой задачи, желательно без больших библиотек!


Ответы (0 шт):