Много строчное редактирование таблицы базы данных в андроиде
Не могу найти примера стандартным способом вывести строки таблицы 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>
По кнопке Новая подстановка должна добавляться новая строка, по кнопке Удалить подстановку - должны удалиться отмеченные строки. По кнопке Сохранить должны сохраниться изменения в этой же таблице.
Пожалуйста, дайте хотя бы ссылку на решение такой задачи, желательно без больших библиотек!