Все технические форумы на одном сайте Удобный поиск информации с популярных форумов в одном месте
Вопрос: Добавление данных в sql

Здравствуйте. При изучении программирования под андроид у меня возник вопрос: Как при создании базы данных заполнять её данными( Не просто добавить одну строку,
Как показано в примере ниже:
Код Javascript
1
2
3
4
5
6
7
ContentValues values = new ContentValues();
        values.put(COLUMN_PRODUCTNAME, "test1");
        values.put(COLUMN_QUANTITY, "test2");
 
        SQLiteDatabase db = this.getWritableDatabase();
        
        db.insert(TABLE_PRODUCTS, null, values);
а 100 строк или даже больше). Чтобы дальше работать с этими строками (этой базой данных).
Заранее спасибо.
Ответ: Через цикл.
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
for(int i=0;i<10;i++)
    {
    ContentValues values=new ContentValues(); 
    values.put("codigo", String.valueOf(i));
    values.put("produto", "Net");
    values.put("qtd", String.valueOf(i));
    sql.insert("est", null, values);
    }
Вопрос: Добавление данных в БД

Здравствуйте! Я создал простейшую базу данных Sqlite следующего вида:

_id \ ИМЯ \ ГОД РОЖДЕНИЯ \ НОМЕР ТЕЛЕФОНА

1 \ Вася \ 1989 \ 11111
2 \ Коля \ 1993 \ 22222
3 \ Толик \ 1983 \ 33333


Вносить данные через метод insert() я научился только при условии, что добавляю полную строку с заполнением всех столбцов. Например, "Петя, 1999, 44444" и появляется в таблице новая запись.
А можно ли добавить запись (строку) в отдельно взятую колонку определенного номера.
Ну, сделать, что бы, например у Коли в столбце НОМЕР ТЕЛЕФОНА было несколько строк с разными номерами телефонов, примерно так:

1 \ Вася \ 1989 \ 11111
2 \ Коля \ 1993 \ 22222
---------------------\66666
---------------------\77777
3 \ Толик \ 1983 \ 33333

Или надо запихивать все номера телефонов Коли в один его столбец НОМЕР ТЕЛЕФОНА и придумывать свой разделитель и дальше уже обрабатывать его???

Заранее благодаря за помощь!!!
Ответ:
Сообщение от Elkatib
надо отдельную таблицу под номера создавать?
А, по-другому Вы это и не сделаете.
Вопрос: Вывод данных в ListViev из БД

Доброго времени суток. Диплом близится а на данный момент всё плоховатенько, ой как плоховатенько.



Есть база данных, в ней 4 таблицы("man", "event_type", "meeting", "event"). в таблице "event" хранятся id на данные в предыдущих трёх таблицах. Каким-то образом нужно вывести данные в виде строк, а не цифр(айдишников), которые сей час как раз и выводятся. Как господа?
Код Java(TM) 2 Platform Standard Edition 5.0
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//man
    private static final String DB_TABLE = "man";
    public static final String COLUMN_ID = "_id";
    public static final String COLUMN_NAME = "name";
 
    private static final String DB_CREATE =
            "create table " + DB_TABLE + "(" +
                    COLUMN_ID + " integer primary key autoincrement, " +
                    COLUMN_NAME + " text" +
                    ");";
 
    //event type
    private static final String EVENT_TYPE_TABLE = "event_type";
    public static final String EVENT_TYPE_COLUMN_ID = "_id";
    public static final String EVENT_TYPE_COLUMN_NAME = "name";
 
    private static final String EVENT_TYPE_DB_CREATE =
            "create table " + EVENT_TYPE_TABLE + "(" +
                    EVENT_TYPE_COLUMN_ID + " integer primary key autoincrement, " +
                    EVENT_TYPE_COLUMN_NAME + " text" +
                    ");";
 
    //meeting
    private static final String MEETING_TABLE = "meeting";
    public static final String MEETING_COLUMN_ID = "_id";
    public static final String MEETING_COLUMN_NAME = "name";
 
    private static final String MEETING_DB_CREATE =
            "create table " + MEETING_TABLE + "(" +
                    MEETING_COLUMN_ID + " integer primary key autoincrement, " +
                    MEETING_COLUMN_NAME + " text" +
                    ");";
 
        //event
    private static final String EVENT_TABLE = "event";
    public static final String EVENT_COLUMN_ID = "_id";
    public static final String EVENT_COLUMN_MAN = "ManId";
    public static final String EVENT_COLUMN_MEETING = "MeetingId";
    public static final String EVENT_COLUMN_EVENT_TYPE = "EventTypeId";
    public static final String EVENT_COLUMN_VALUE = "Value";
 
    private static final String EVENT_DB_CREATE =
            "create table " + EVENT_TABLE + "(" +
                    EVENT_COLUMN_ID + " integer primary key autoincrement, " +
                    EVENT_COLUMN_MAN + " integer, " +
                    EVENT_COLUMN_MEETING + " integer, " +
                    EVENT_COLUMN_EVENT_TYPE + " integer, " +
                    EVENT_COLUMN_VALUE + " integer" +
                    ");";
 
public void onCreate(SQLiteDatabase db) {
            db.execSQL(DB_CREATE);
            db.execSQL(EVENT_TYPE_DB_CREATE);
            db.execSQL(MEETING_DB_CREATE);
            db.execSQL(EVENT_DB_CREATE);
 
//            ContentValues cv = new ContentValues();
//            for (int i = 1; i < 5; i++) {
//                cv.put(COLUMN_NAME, "sometext " + i);
//                db.insert(DB_TABLE, null, cv);
//            }
        }
Добавлено через 2 минуты
Сам onCreate и ниже добавление данных и обновление списка. Как сделать правильный вывод, то есть не цифр из табл. "event", а строк из других таблиц, подцепляя их через айдишники?

Код Java(TM) 2 Platform Standard Edition 5.0
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_event);
 
        Log.v(TAG, "ОТКРЫВАЕМ ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ" );
 
        // открываем подключение к БД
        db.open();
 
        Log.v(TAG, "ОК- ОТКРЫЛИ" );
 
        // РАСКРЫВАЮЩИЕСЯ СПИСОКИ
        edtMan = (Spinner) findViewById(R.id.ManSpinner);
        edtET = (Spinner) findViewById(R.id.ETSpinner);
        edtMeet = (Spinner) findViewById(R.id.MeetingSpinner);
 
        //СПИНЕРЫ MAN - EVENT TYPE - MEET
        CreatNewSpinnerFU("man", "name", edtMan);
        CreatNewSpinnerFU("event_type", "name", edtET);
        CreatNewSpinnerFU("meeting", "name", edtMeet);
 
        //список на экране
        Cursor curEv = db.getAllData("event");
        startManagingCursor(curEv);
 
        // формируем столбцы сопоставления
        String[] from = new String[] { DB.EVENT_COLUMN_MEETING,
                                       DB.EVENT_COLUMN_MAN,
                                       DB.EVENT_COLUMN_EVENT_TYPE,
                                       DB.EVENT_COLUMN_VALUE};
        int[] to = new int[] { R.id.tvText,
                               R.id.tvText1,
                               R.id.tvText2,
                               R.id.tvText3};
 
 
        // создааем адаптер и настраиваем список
        scAdapter = new SimpleCursorAdapter(this, R.layout.item_ev, curEv, from, to, 0);
        lvDataEvent = (ListView) findViewById(R.id.lvDataEvent);
        lvDataEvent.setAdapter(scAdapter);
 
        // добавляем контекстное меню к списку
        registerForContextMenu(lvDataEvent);
 
        checkboxEvent = (CheckBox) findViewById(R.id.checkBox);
Код Java(TM) 2 Platform Standard Edition 5.0
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
btnEvent  = (Button) findViewById(R.id.new_event_in_tab);
        btnEvent.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Do something in response to button click
 
 
                boolean checkMan= false;
                boolean checkET = false;
                boolean checkMeet = false;
 
                Log.v(TAG, "ТЫК!" );
 
                //checkMan = !true; checkET = !true; checkMeet = !true;
 
                Log.v(TAG, "РАБОТАЕ СО СПИНЕРАМИ" );
                if (edtMan.getSelectedItem() != null)
                {
                    checkMan = true;
 
                    cur = db.GetCatalogValueByName("man", "_id", "name", edtMan.getSelectedItem().toString());
                    cManID = cur.getInt(cur.getColumnIndex("_id"));
                }
                if (edtET.getSelectedItem() != null)
                {
                    checkET = true;
                    cur = db.GetCatalogValueByName("event_type", "_id", "name", edtET.getSelectedItem().toString());
                    cETID = cur.getInt(cur.getColumnIndex("_id"));
                    //db.addRec("event", DB.EVENT_COLUMN_EVENT_TYPE, cETID );
                }
                if (edtMeet.getSelectedItem() != null)
                {
                    checkMeet = true;
                    cur = db.GetCatalogValueByName("meeting", "_id", "name", edtMeet.getSelectedItem().toString());
                    cMeetID = cur.getInt(cur.getColumnIndex("_id"));
                    //db.addRec("event", DB.EVENT_COLUMN_MEETING, cMeetID );
                }
 
                Log.v(TAG, "ПРОВЕРЯЕМ ФЛАГИ НА 'TRUE'. ИМЕЮТСЯ ЛИ ДАННЫЕ В СПИНЕРАХ " );
 
                //Если все значения true, то записываем данные в таблицу "event"
                if(checkMan && checkET && checkMeet){
 
//                    db.addRec("event", "ManId", cManID );
//                    db.addRec("event", "MeetingId", cMeetID );
//                    db.addRec("event", "EventTypeId", cETID );
//                    Log.v(TAG, "ОК" );
                    Log.v(TAG, "РАБОТА С ЧЕКБОКСИКА" );
                    if (checkboxEvent.isChecked()){
//                        db.addRec("event", DB.EVENT_COLUMN_VALUE, 1 );
                        cChB = 1;
                        Log.v(TAG, "ОК---1" );
                    }else {
//                        db.addRec("event", DB.EVENT_COLUMN_VALUE, 0 );
                        cChB = 0;
                        Log.v(TAG, "ОК---0" );
                    }
                    //Добавление данных в таблицу
                    db.addRecFour("event",
                            DB.EVENT_COLUMN_MAN, cManID,
                            DB.EVENT_COLUMN_MEETING, cMeetID,
                            DB.EVENT_COLUMN_EVENT_TYPE, cETID,
                            DB.EVENT_COLUMN_VALUE, cChB);
 
 
                    //cur.requery();
                    cur = db.getAllData("event");
                    scAdapter.changeCursor(cur);
                    scAdapter.notifyDataSetChanged();
                }
 
            }
        });
Ответ: Проверь ещё раз правильно ли написаны названия таблиц и колонок

Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
private static final String GET_DATA_FROM_LIST =
            "SELECT * FROM meeting, man, event_type, event " +
            "WHERE event.ManId = man._id AND event.MeetingId = meeting._id AND " +
            "event.EventTypeId = event_type._id";
"*" означает выбрать все колонки

Добавлено через 5 минут
Посмотри там где у тебя таблицы создаются
Вот это не нужно делать
Код Java(TM) 2 Platform Standard Edition 5.0
1
db.execSQL(DB_CREATE);
+ у тебя не хватает таблицы

Хотя вроде нормально там всё. Уже не видят глаза ))) Я пошёл спать. у меня тут уже час ночи. Удачи с кодом
Вопрос: Ошибка при добавлении данных в список

Здравствуйте, такой вопрос, у меня список и собственный адаптер, в адаптере размер списка указан от количества элементов в списке String который выводится уже на экран в виде списка. Когда я пытаюсь добавить в список String новый элемент происходит ошибка.
Ответ: editText6 это текст SMS, если нет этого текста, то не будет добавления, попробую с разметкой поработать.

Добавлено через 16 минут
поставил другой listView и все заработало, видимо в файле разметки что то было не так, спасибо Rube

Добавлено через 1 час 50 минут
Еще вопрос, а как изменить размер текста и цвет текста программно, скажем цвет текста кто отправляет такой то и цвет текста принимаемых сообщений такой то, то есть у меня есть выбор цвета и размера текста и как программно это задать для списка.

Добавлено через 1 час 0 минут
все решил проблему, все просто и легко
Вопрос: Где можно получить тестовые данные REST API?

Доброго дня.
Где можно попрактиковаться с REST API (retrofit, gson)? То что удалось нагуглить предлагает по сути работу в одну сторону - readonly режим, получить данные. Пример - .

А удаление/изменение/добавление данных на сервер? Может есть какой-то тестовый сервер/сервис, в т.ч. который можно по быстрому поднять у себя? Не хотелось бы отвлекаться ещё и на создание серверной части в процессе обучения.
Ответ: arvalon, на просторах полно бесплатных хостингов.
Вопрос: При считывании данных из таблицы, данные становятся пустыми

Проблема в том что когда я записываю новый элемент таблицы проблем не возникает и данные вводятся корректно, но когда я пытаюсь их считать, то все выведенные элементы определяются как Null или 0. При этом их количество выводится верно.
База данных
Код Java(TM) 2 Platform Standard Edition 5.0
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
package com.example.work_2.sqlite;
 
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
import com.example.work_2.model.Raspisanie;;
 
public class SQLdatabaseDBAction extends SQLiteOpenHelper {
 
    // Версия базы данных
    private static final int DATABASE_VERSION = 1;
 
    // Имя базы данных
    private static final String DATABASE_NAME = "MYBD";
 
    /**
    * Конструктор
    */
    public SQLdatabaseDBAction(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
 
    /**
    * Конструктор
    */
    @Override
    public void onCreate(SQLiteDatabase db) {
        // SQL запрос на создание таблицы
        String CREATE_SQLDATABASEDBACTION = "CREATE TABLE SQLDATABASE ( " +
                "ID INTEGER PRIMARY KEY AUTOINCREMENT, "+
                "DAY TEXT, "+
                "VOLUME TEXT, "+
                "TYPE TEXT, "+
                "TIME TEXT, "+
                "DAY_ID INTEGER )";
        // Выполняем запрос на создание таблицы
        db.execSQL(CREATE_SQLDATABASEDBACTION);
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // Если с таблицей ппроблемы - удаляем предыдущую версию таблицы
        db.execSQL("DROP TABLE IF EXISTS SQLDATABASE");
        // Пересоздаем таблицу
        this.onCreate(db);
    }
 
 
    //----------------------------------------------------------------------------------------
    // Основные операции для работы с таблицей (добавление, удаление, редактирование и т.п.)
    //----------------------------------------------------------------------------------------
 
 
    // Имя тиблицы
    private static final String TABLE_SQLDATABASE = "SQLDATABASE";
 
    // Колонки в таблице
    private static final String KEY_ID = "ID";
    private static final String KEY_DAY = "DAY";
    private static final String KEY_VOLUME = "VOLUME";
    private static final String KEY_TYPE = "TYPE";
    private static final String KEY_TIME = "TIME";
    private static final String KEY_DAY_ID = "DAY_ID";
 
    private static final String[] COLUMNS = {KEY_ID, KEY_DAY, KEY_VOLUME, KEY_TYPE, KEY_TIME, KEY_DAY_ID};
 
    /**
    * Добавить запись в БД
    */
    public void addRec(Raspisanie raspisanie){
        Log.d("addBook", raspisanie.toString());
        // 1. Указатель на изменяемую БД
        SQLiteDatabase db = this.getWritableDatabase();
        // 2. Список данных "column/value"
        ContentValues values = new ContentValues();
        values.put(KEY_DAY, raspisanie.getDAY()); // 
        values.put(KEY_VOLUME, raspisanie.getVOLUME()); // 
        values.put(KEY_TYPE, raspisanie.getTYPE()); // 
        values.put(KEY_TIME, raspisanie.getTIME()); // 
        values.put(KEY_DAY_ID, raspisanie.getDAY_ID()); // 
        // 3. Добавили запись
        db.insert(TABLE_SQLDATABASE, // table
                null, //nullColumnHack
                values); // key/value -> keys = column names/ values = column values
        // 4. Закрыли указатель
        //db.query("SQLDATABASE", null, null, null, null, null, "KEY_DAY_ID");
        db.close();
    }
 
    /**
    * Дать запись из БД по идентификатору.
    */
    public Raspisanie getRec(int id){
        // 1. Указатель на читаемую БД
        SQLiteDatabase db = this.getReadableDatabase();
        // 2. Запрос на чтение
        Cursor cursor =
                db.query(TABLE_SQLDATABASE, // a. table
                COLUMNS, // b. column names
                " id = ?", // c. selections
                new String[] { String.valueOf(id) }, // d. selections args
                null, // e. group by
                null, // f. having
                KEY_DAY_ID, // g. order by
                null); // h. limit
        // 3. Если есть записи - перемещаем курсор на первую
        if (cursor != null)
            cursor.moveToFirst();
        // 4. Заполняем данными результат
        Raspisanie raspisanie = new Raspisanie();
        raspisanie.setID(Integer.parseInt(cursor.getString(0)));
        raspisanie.setDAY((cursor.getString(1)));
        raspisanie.setVOLUME((cursor.getString(2)));
        raspisanie.setTYPE((cursor.getString(3)));
        raspisanie.setTIME((cursor.getString(4)));
        raspisanie.setDAY_ID(Integer.parseInt(cursor.getString(5)));
        // 5. Закрываем указатель на БД
        db.close();
        // 6. Возвращаем результат
        return raspisanie;
    }
 
    /**
    * Дать все записи из БД
    */
    public List<Raspisanie> getRecAll() {
        List<Raspisanie> raspisanies = new LinkedList<Raspisanie>();
        // 1. Создаем запрос на выборку
        String query = "SELECT  * FROM " + TABLE_SQLDATABASE;
        // 2. Указатель на изменяемую БД
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(query, null);
        // 3. Создаем результирующий список
        Raspisanie raspisanie = null;
        if (cursor.moveToFirst()) {
            do {
                raspisanie = new Raspisanie();
                raspisanie.setID(Integer.parseInt(cursor.getString(0)));
                raspisanie.setDAY((cursor.getString(1)));
                raspisanie.setVOLUME((cursor.getString(2)));
                raspisanie.setTYPE((cursor.getString(3)));
                raspisanie.setTIME((cursor.getString(4)));
                raspisanie.setDAY_ID(Integer.parseInt(cursor.getString(5)));
                // Добавляем запись в список
                raspisanies.add(raspisanie);
            } while (cursor.moveToNext());
        }
        // 4. Закрываем указатель
        db.close();
        // 5. Возвращаем результат
        return raspisanies;
    }
 
    /**
    * Редактировать запись в БД
    */
    public int edRec(Raspisanie raspisanie) {
        // 1. Указатель на изменяемую БД
        SQLiteDatabase db = this.getWritableDatabase();
        // 2. Список данных "column/value"
        ContentValues values = new ContentValues();
        values.put("DAY", raspisanie.getDAY()); // 
        values.put("VOLUME", raspisanie.getVOLUME()); // 
        values.put("TYPE", raspisanie.getTYPE()); // 
        values.put("TIME", raspisanie.getTIME()); // 
        values.put("DAY_ID", raspisanie.getDAY_ID()); // 
        // 3. Обновляем запись
        int i = db.update(TABLE_SQLDATABASE, //table
                values, // column/value
                KEY_ID+" = ?", // selections
                new String[] { String.valueOf(raspisanie.getID()) }); //selection args
        // 4. Закрываем указатель
        db.close();
        // 5. Возвращаем результат выполнение функции UPDATE
        return i;
    }
 
    /**
    * Удалить запись из БД
    */
    public void deleteRec(Raspisanie raspisanie) {
        // 1. Указатель на изменяемую БД
        SQLiteDatabase db = this.getWritableDatabase();
        // 2. Удаляем запись
        db.delete(TABLE_SQLDATABASE,
                KEY_ID+" = ?",
                new String[] { String.valueOf(raspisanie.getID()) });
        // 3. Зкрываем указатель
        db.close();
    }
 
    /**
    * Удалить запись по идентификатору
    */
    public void deleteRec(int id) {
        Raspisanie d=new Raspisanie();
       d.setID(id);
       deleteRec(id);
    }
 
}
Страница где выводятся все элементы таблицы
Код Java(TM) 2 Platform Standard Edition 5.0
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
package com.example.work_2;
 
 
import java.util.List;
import android.support.v7.app.ActionBarActivity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import com.example.work_2.model.Raspisanie;
import com.example.work_2.sqlite.SQLdatabaseDBAction;
 
public class Table extends ActionBarActivity {
    
    String[] groups = new String[] {"Понедельник", "Вторник", "Среда", "Четверг", "Пятница","Суббота"};
    
    AlertDialog.Builder ad;
    Context context;
    ListView lvMain;
    final String LOG_TAG = "myLogs";
    
 
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_table);
        SQLdatabaseDBAction db = new SQLdatabaseDBAction(this);
        LayoutInflater ltInflater = getLayoutInflater();
        LinearLayout linLayout = (LinearLayout) findViewById(R.id.linLayout);
 
        List<Raspisanie> list = db.getRecAll();
 
        for (int i = 0; i < list.size(); i++) {
            View item = ltInflater.inflate(R.layout.lable, linLayout, false);
            //TextView tvName = (TextView) item.findViewById(R.id.TextView03);
            //TextView tvName1 = (TextView) item.findViewById(R.id.textView1);
            //tvName1.setText(list.get(i).toString() );
            //tvName.setText(String.valueOf(list.size()));
            //linLayout.addView(item);
            
            TextView text1 = (TextView) item.findViewById(R.id.text1);
            TextView text2 = (TextView) item.findViewById(R.id.text2);
            TextView text3 = (TextView) item.findViewById(R.id.text3);
            TextView text4 = (TextView) item.findViewById(R.id.text4);
            
            text1.setText(list.get(i).toString() );
            text2.setText(list.get(i).toString1() );
            text3.setText(list.get(i).toString2() );
            //text1.setText(list1.toString() );
            //text2.setText(list1.toString1() );
            //text3.setText(list1.toString2() );
            //text4.setText(list.get(i).toString3() );
            //text4.setText(list.get(i).toString3() );
            text4.setText(String.valueOf(i));
            linLayout.addView(item);
          }
        
        
 
    }
    public void onClick(View v)
    {
        Intent intent = new Intent(Table.this, Add_new_table.class);
        startActivity(intent);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.table, menu);
        return true;
    }
 
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();
        if (id == R.id.action_settings) {
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}
И модули базы данных
Код Java(TM) 2 Platform Standard Edition 5.0
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
package com.example.work_2.model;
 
public class Raspisanie {
        private int id;
        private String DAY;
        private String VOLUME;
        private String TYPE;
        private String TIME;
        private int    DAY_ID;
        private int fID;
 
        public int getID(){
             return fID;
       }
 
        public void setID(int d){
             fID=d;
       }
 
        private String fDAY;
 
        public String getDAY(){
             return fDAY;
       }
 
        public void setDAY(String d){
             fDAY=d;
       }
 
        private String fVOLUME;
 
        public String getVOLUME(){
             return fVOLUME;
       }
 
        public void setVOLUME(String d){
             fVOLUME=d;
       }
 
        private String fTYPE;
 
        public String getTYPE(){
             return fTYPE;
       }
 
        public void setTYPE(String d){
             fTYPE=d;
       }
 
        private String fTIME;
 
        public String getTIME(){
             return fTIME;
       }
 
        public void setTIME(String d){
             fTIME=d;
       }
 
        private int fDAY_ID;
 
        public int getDAY_ID(){
             return fDAY_ID;
       }
 
        public void setDAY_ID(int d){
             fDAY_ID=d;
       }
     
        public Raspisanie(){}
     
        
        public Raspisanie(String DAY, String VOLUME,String TYPE,String TIME, int DAY_ID) {
            super();
            this.DAY = DAY;
            this.VOLUME = VOLUME;
            this.TYPE = TYPE;
            this.TIME = TIME;
            this.DAY_ID = DAY_ID;
        }
     
        //getters & setters
     
        @Override
        public String toString() {
            return "122";
        }
        public String toString1() {
            return VOLUME;
        }
        public String toString2() {
            return TYPE;
        }
        public String toString3() {
            return TIME + " " + DAY_ID;
        }
 
}
Ответ: Filtar, от скуки покопался в твоём коде. Тяжело читается ))

Исправил немного. Тут:

Код Java(TM) 2 Platform Standard Edition 5.0
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
public class SQLdatabaseDBAction extends SQLiteOpenHelper {
 
    // Версия базы данных
    private static final int DATABASE_VERSION = 1;
 
    // Имя базы данных
    private static final String DATABASE_NAME = "MYBD";
 
    /**
     * Конструктор
     */
    public SQLdatabaseDBAction(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
 
    /**
     * Конструктор
     */
    @Override
    public void onCreate(SQLiteDatabase db) {
        // SQL запрос на создание таблицы
        String CREATE_SQLDATABASEDBACTION = "CREATE TABLE SQLDATABASE ( " +
                KEY_ID +" INTEGER PRIMARY KEY AUTOINCREMENT, "+
                KEY_DAY+" TEXT, "+
                KEY_VOLUME+" TEXT, "+
                KEY_TYPE+" TEXT, "+
                KEY_TIME+" TEXT, "+
                KEY_DAY_ID+" INTEGER);";
        // Выполняем запрос на создание таблицы
        db.execSQL(CREATE_SQLDATABASEDBACTION);
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // Если с таблицей ппроблемы - удаляем предыдущую версию таблицы
        //db.execSQL("DROP TABLE IF EXISTS SQLDATABASE");
        // Пересоздаем таблицу
        //this.onCreate(db);
    }
 
 
    //----------------------------------------------------------------------------------------
    // Основные операции для работы с таблицей (добавление, удаление, редактирование и т.п.)
    //----------------------------------------------------------------------------------------
 
 
    // Имя тиблицы
    private static final String TABLE_SQLDATABASE = "SQLDATABASE";
 
    // Колонки в таблице
    //                private static final String KEY_ID = "ID";
    private static final String KEY_ID = "_id";
    private static final String KEY_DAY = "DAY";
    private static final String KEY_VOLUME = "VOLUME";
    private static final String KEY_TYPE = "TYPE";
    private static final String KEY_TIME = "TIME";
    private static final String KEY_DAY_ID = "DAY_ID";
 
    private static final String[] COLUMNS = {KEY_ID, KEY_DAY, KEY_VOLUME, KEY_TYPE, KEY_TIME, KEY_DAY_ID};
 
    /**
     * Добавить запись в БД
     */
    public void addRec(Raspisanie raspisanie){
 
        // 1. Указатель на изменяемую БД
        SQLiteDatabase db = this.getWritableDatabase();
        // 2. Список данных "column/value"
        ContentValues values = new ContentValues();
        values.put(KEY_DAY, raspisanie.getDAY()); //
 
        values.put(KEY_VOLUME, raspisanie.getVOLUME()); //
        values.put(KEY_TYPE, raspisanie.getTYPE()); //
        values.put(KEY_TIME, raspisanie.getTIME()); //
        values.put(KEY_DAY_ID, raspisanie.getDAY_ID()); //
        // 3. Добавили запись
        db.insert(TABLE_SQLDATABASE, // table
                null, //nullColumnHack
                values); // key/value -> keys = column names/ values = column values
        // 4. Закрыли указатель
        //db.query("SQLDATABASE", null, null, null, null, null, "KEY_DAY_ID");
        db.close();
    }
 
    /**
     * Дать запись из БД по идентификатору.
     */
    public Raspisanie getRec(int id){
        // 1. Указатель на читаемую БД
        SQLiteDatabase db = this.getReadableDatabase();
        // 2. Запрос на чтение
        Cursor cursor =
                db.query(TABLE_SQLDATABASE, // a. table
                        COLUMNS, // b. column names
                        "_id = ?", // c. selections
                        new String[] { String.valueOf(id) }, // d. selections args
                        null, // e. group by
                        null, // f. having
                        KEY_DAY_ID, // g. order by
                        null); // h. limit
        // 3. Если есть записи - перемещаем курсор на первую
        if (cursor != null)
            cursor.moveToFirst();
        // 4. Заполняем данными результат
        Raspisanie raspisanie = new Raspisanie();
        raspisanie.setID(Integer.parseInt(cursor.getString(0)));
        raspisanie.setDAY((cursor.getString(1)));
        raspisanie.setVOLUME((cursor.getString(2)));
        raspisanie.setTYPE((cursor.getString(3)));
        raspisanie.setTIME((cursor.getString(4)));
        raspisanie.setDAY_ID(Integer.parseInt(cursor.getString(5)));
        // 5. Закрываем указатель на БД
        db.close();
        // 6. Возвращаем результат
        return raspisanie;
    }
 
    /**
     * Дать все записи из БД
     */
    public List<Raspisanie> getRecAll() {
        List<Raspisanie> raspisanies = new LinkedList<>();
        // 1. Создаем запрос на выборку
        String query = "SELECT * FROM " + TABLE_SQLDATABASE;
        // 2. Указатель на изменяемую БД
        SQLiteDatabase db = this.getWritableDatabase();
        Cursor cursor = db.rawQuery(query, null);
 
        // 3. Создаем результирующий список
        //Raspisanie raspisanie = null;
        if (cursor.moveToFirst()) {
            do {
                int id = cursor.getInt(cursor.getColumnIndex(KEY_ID));
                String day = cursor.getString(cursor.getColumnIndex(KEY_DAY));
                String volume = cursor.getString(cursor.getColumnIndex(KEY_VOLUME));
                String type = cursor.getString(cursor.getColumnIndex(KEY_TYPE));
                String time = cursor.getString(cursor.getColumnIndex(KEY_TIME));
                int dayNum = cursor.getInt(cursor.getColumnIndex(KEY_DAY_ID));
 
                raspisanies.add(new Raspisanie(day, volume, type, time, dayNum));
            } while (cursor.moveToNext());
        }
        // 4. Закрываем указатель
        db.close();
        // 5. Возвращаем результат
        return raspisanies;
    }
 
    /**
     * Редактировать запись в БД
     */
    public int edRec(Raspisanie raspisanie) {
        // 1. Указатель на изменяемую БД
        SQLiteDatabase db = this.getWritableDatabase();
        // 2. Список данных "column/value"
        ContentValues values = new ContentValues();
        values.put("DAY", raspisanie.getDAY()); //
        values.put("VOLUME", raspisanie.getVOLUME()); //
        values.put("TYPE", raspisanie.getTYPE()); //
        values.put("TIME", raspisanie.getTIME()); //
        values.put("DAY_ID", raspisanie.getDAY_ID()); //
        // 3. Обновляем запись
        int i = db.update(TABLE_SQLDATABASE, //table
                values, // column/value
                KEY_ID+" = ?", // selections
                new String[] { String.valueOf(raspisanie.getID()) }); //selection args
        // 4. Закрываем указатель
        db.close();
        // 5. Возвращаем результат выполнение функции UPDATE
        return i;
    }
 
    /**
     * Удалить запись из БД
     */
    public void deleteRec(Raspisanie raspisanie) {
        // 1. Указатель на изменяемую БД
        SQLiteDatabase db = this.getWritableDatabase();
        // 2. Удаляем запись
        db.delete(TABLE_SQLDATABASE,
                KEY_ID+" = ?",
                new String[] { String.valueOf(raspisanie.getID()) });
        // 3. Зкрываем указатель
        db.close();
    }
 
    /**
     * Удалить запись по идентификатору
     */
    public void deleteRec(int id) {
        Raspisanie d=new Raspisanie();
        d.setID(id);
        deleteRec(id);
    }
 
}
и тут:

Код Java(TM) 2 Platform Standard Edition 5.0
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
public class Raspisanie {
    private int id;
    private String DAY;
    private String VOLUME;
    private String TYPE;
    private String TIME;
    private int    DAY_ID;
    private int fID;
 
    @Override
    public String toString() {
        return ""+DAY+" "+VOLUME+" "+TYPE+" "+TIME+" "+DAY_ID;
    }
 
    public int getID(){
        return fID;
    }
 
    public void setID(int d){
        fID=d;
    }
 
    private String fDAY;
 
    public String getDAY(){
        return DAY;
    }
 
    public void setDAY(String d){
        DAY=d;
    }
 
    private String fVOLUME;
 
    public String getVOLUME(){
        return VOLUME;
    }
 
    public void setVOLUME(String d){
        fVOLUME=d;
    }
 
    private String fTYPE;
 
    public String getTYPE(){
        return TYPE;
    }
 
    public void setTYPE(String d){
        fTYPE=d;
    }
 
    private String fTIME;
 
    public String getTIME(){
        return TIME;
    }
 
    public void setTIME(String d){
        fTIME=d;
    }
 
    private int fDAY_ID;
 
    public int getDAY_ID(){
        return DAY_ID;
    }
 
    public void setDAY_ID(int d){
        fDAY_ID=d;
    }
 
    public Raspisanie(){}
 
 
    public Raspisanie(String DAY, String VOLUME,String TYPE,String TIME, int DAY_ID) {
        super();
        this.DAY = DAY;
        this.VOLUME = VOLUME;
        this.TYPE = TYPE;
        this.TIME = TIME;
        this.DAY_ID = DAY_ID;
    }
 
    //getters & setters
 
 
    public String toString1() {
        return VOLUME;
    }
    public String toString2() {
        return TYPE;
    }
    public String toString3() {
        return TIME + " " + DAY_ID;
    }
 
}
проверил вот таким кодом:

Код Java(TM) 2 Platform Standard Edition 5.0
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 class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        Raspisanie raspisanie1 = new Raspisanie("1day", "1volume", "1type", "1time", 1777);
        Raspisanie raspisanie2 = new Raspisanie("2day", "2volume", "2type", "2time", 2777);
        SQLdatabaseDBAction dbAction = new SQLdatabaseDBAction(this);
 
        dbAction.addRec(raspisanie1);
        dbAction.addRec(raspisanie2);
 
        List<Raspisanie> list = dbAction.getRecAll();
 
        Log.d("myLog", "Start");
        for(Raspisanie item: list) {
            Log.d("myLog", "" + item.getDAY());
            Log.d("myLog", "" + item.getVOLUME());
            Log.d("myLog", "" + item.getTYPE());
            Log.d("myLog", "" + item.getTIME());
            Log.d("myLog", "" + item.getDAY_ID());
        }
        Log.d("myLog", "End");
    }
}
всё работает. В классе Raspisanie много лишних букв "f" ))
Вопрос: Обновить список БД после добавление новой записи?

При добавление записи в таблицу она добавляется в ListView, а при нажатие на какую либо строку списка ID бд выводится в TextView . Проблема в том, что новая запись не выводит ID сразу после добавления и нажатия на нее.
А когда вручную поменяешь горизонтальное и вертикальное положение экрана она выбирается )))
Код Java(TM) 2 Platform Standard Edition 5.0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
insert.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                ContentValues contentValues = new ContentValues();
                contentValues.put("name",name.getText().toString());
                contentValues.put("phone",phone.getText().toString());
 
                sqLiteDatabase.insert("Contact",null,contentValues);
 
                massname.add(0, name.getText().toString()+" "+ phone.getText().toString());
                adapter.notifyDataSetChanged();
 
                Toast toast = Toast.makeText(getApplicationContext(),
                        "Запись добавлена", Toast.LENGTH_SHORT);
                toast.setGravity(Gravity.CENTER, 0, 0);
                toast.show();
                name.setText("");
 
            }
        });
Ответ: Василевский, по моему это нарушение MVC-патерна. Не нужно вручную добавлять элемент в ListView. Нужно добавить запись в модель(базу), а модель должна проинформировать представление(ListView) о том, что ему(представлению) нужно обновиться. Новые данные для ListView следует брать из базы, а не вставлять прямо из полей ввода.
Вопрос: Как обновить Recycle View после добавления нового элемента в БД? Используется Cursor

Проблема такова, после добавления элемента в БД, список элементов Recycle View не обновляется, приходится заново пересоздавать фрагмент, а хотелось бы что бы строчка сразу появлялась + с анимацией.

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

Адаптеру Recycle View передаю курсор, у адаптеру прописываю notifyDataSetChanged в момент возврата в список, подскажите что не так?

Это в активити где находится список элементов:
Java
1
2
3
4
5
    @Override
    public void onResume() {
        clientList_adapter.notifyDataSetChanged();
        super.onResume();
    }
Адаптер:
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class ClientsList_adapter extends RecyclerView.Adapter<ClientsList_adapter.ViewHolder> {
    private Cursor mDataset;
 
    public ClientsList_adapter(Cursor myDataset) {
        mDataset = myDataset;
    }
 
    public static class ViewHolder extends RecyclerView.ViewHolder {
        public TextView mTextView;
 
        public ViewHolder(View   v) {
            super(v);
            mTextView = (TextView)v.findViewById(R.id.client_name_txt);
        }
    }
 
    @Override
    public ClientsList_adapter.ViewHolder onCreateViewHolder(ViewGroup parent,
                                                             int viewType) {
        View v = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.clients_list_item, parent, false);
 
        ViewHolder vh = new ViewHolder(v);
        return vh;
    }
 
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        mDataset.moveToPosition(position);
 
        String val = mDataset.getString(1);
 
        holder.mTextView.setText(val);
    }
 
    @Override
    public int getItemCount() {
        return mDataset.getCount();
    }
 
}
Ответ: Всем спасибо за помощь, получилось!

Решил данные передавать через ArrayList. А адаптере добавил метод, в котором заменяю лист на новый:
Java
1
2
3
4
5
    public void update(ArrayList<ClientItem> myData){
        mData = myData;
 
        notifyDataSetChanged();
    }
Ну и в активити где находится список:
Java
1
2
3
4
5
6
7
8
9
10
11
   @Override
    public void onResume() {
        SQLiteDatabase db = MainMenu.dbhelper.getWritableDatabase();
        Cursor cursor = db.query(TABLE_CLIENTS, null, null, null, null, null, null);
 
        ArrayList<ClientItem> newData = getDataFromCursor(cursor);
 
        clientList_adapter.update(newData);
 
        super.onResume();
    }
Вопрос: SQLite and ListView. Ввод и вывод данных

Здравствуйте. Пишу программу(кто бы мог подумать). Есть подозрения, что данные в БД вбиваются не правильно или как раз выводятся неправильно. Этого ни как всё не пойму.Собственно код:
Вывод данных в лог с помощью кнопки из таблицы, что в БД.
Код Java(TM) 2 Platform Standard Edition 5.0
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
28
29
30
31
32
 btnEvent  = (Button) findViewById(R.id.log_log_log);
        btnEvent.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
 
                Log.d(TAG, "--- Rows in event: ---");
                // делаем запрос всех данных из таблицы , получаем Cursor
                //Cursor c = db.query("event", null, null, null, null, null, null);
                Cursor c = db.getAllData("event");
 
                if (c.moveToFirst()) {
                    int idColID = c.getColumnIndex(DB.EVENT_COLUMN_ID);
                    int idColMAN = c.getColumnIndex(DB.EVENT_COLUMN_MAN);
                    int idColMEETING = c.getColumnIndex(DB.EVENT_COLUMN_MEETING);
                    int idColET = c.getColumnIndex(DB.EVENT_COLUMN_EVENT_TYPE);
                    int idColVALUE = c.getColumnIndex(DB.EVENT_COLUMN_VALUE);
 
                    do {
                        // получаем значения по номерам столбцов и пишем все в лог
                        Log.d(TAG,
                                "ID = " + c.getInt(idColID) +
                                        ", MAN = " + c.getInt(idColMAN) +
                                        ", MEETING = " + c.getInt(idColMEETING) +
                                        ", EVENT TYPE = " + c.getInt(idColET) +
                                        ", VALUE = " + c.getInt(idColVALUE));
                        // переход на следующую строку
                        // а если следующей нет (текущая - последняя), то false - выходим из цикла
                    } while (c.moveToNext());
                } else {
                    Log.d(TAG, "0 rows");
                }
                    }
        });
Лог после вывода:
Код Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
D/EVENT__ACTIVITY﹕ --- Rows in event: ---
D/EVENT__ACTIVITY﹕ ID = 1, MAN = 1, MEETING = 0, EVENT TYPE = 0, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 2, MAN = 0, MEETING = 1, EVENT TYPE = 0, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 3, MAN = 0, MEETING = 0, EVENT TYPE = 1, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 4, MAN = 0, MEETING = 0, EVENT TYPE = 0, VALUE = 1
D/EVENT__ACTIVITY﹕ ID = 5, MAN = 1, MEETING = 0, EVENT TYPE = 0, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 6, MAN = 0, MEETING = 1, EVENT TYPE = 0, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 7, MAN = 0, MEETING = 0, EVENT TYPE = 1, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 8, MAN = 0, MEETING = 0, EVENT TYPE = 0, VALUE = 1
D/EVENT__ACTIVITY﹕ ID = 9, MAN = 1, MEETING = 0, EVENT TYPE = 0, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 10, MAN = 0, MEETING = 1, EVENT TYPE = 0, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 11, MAN = 0, MEETING = 0, EVENT TYPE = 1, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 12, MAN = 0, MEETING = 0, EVENT TYPE = 0, VALUE = 1
D/EVENT__ACTIVITY﹕ ID = 13, MAN = 2, MEETING = 0, EVENT TYPE = 0, VALUE = 0
D/EVENT__ACTIVITY﹕ ID = 14, MAN = 0, MEETING = 2, EVENT TYPE = 0, VALUE = 0
И так далее.

Фишка в том, что добавляются 4 интовых значения, а при выводе получается не одна строка, а четыре и некой лесенкой, можно увидеть:
11000
20100
30010
40001
Как-то так. Запихнул это на вывод в ListView, но там тоже ни чего хорошего вывод цифры происходит через каждые три строчки.

Добавление в данных в таблицу
Код Java(TM) 2 Platform Standard Edition 5.0
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 btnEvent  = (Button) findViewById(R.id.new_event_in_tab);
        btnEvent.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Do something in response to button click
 
 
                boolean checkMan= !true,
                        checkET = !true,
                        checkMeet = !true;
 
                Log.v(TAG, "ТЫК!" );
 
                //checkMan = !true; checkET = !true; checkMeet = !true;
 
                Log.v(TAG, "РАБОТАЕ СО СПИНЕРАМИ" );
                if (edtMan.getSelectedItem() != null)
                {
                    checkMan = true;
 
                    cur = db.GetCatalogValueByName("man", "_id", "name", edtMan.getSelectedItem().toString());
                    cManID = cur.getInt(cur.getColumnIndex("_id"));
                }
                if (edtET.getSelectedItem() != null)
                {
                    checkET = true;
                    cur = db.GetCatalogValueByName("event_type", "_id", "name", edtET.getSelectedItem().toString());
                    cETID = cur.getInt(cur.getColumnIndex("_id"));
                    //db.addRec("event", DB.EVENT_COLUMN_EVENT_TYPE, cETID );
                }
                if (edtMeet.getSelectedItem() != null)
                {
                    checkMeet = true;
                    cur = db.GetCatalogValueByName("meeting", "_id", "name", edtMeet.getSelectedItem().toString());
                    cMeetID = cur.getInt(cur.getColumnIndex("_id"));
                    //db.addRec("event", DB.EVENT_COLUMN_MEETING, cMeetID );
                }
 
                Log.v(TAG, "ПРОВЕРЯЕМ ФЛАГИ НА 'TRUE'. ИМЕЮТСЯ ЛИ ДАННЫЕ В СПИНЕРАХ " );
 
                //Если все значения true, то записываем данные в таблицу "event"
                if(checkMan != false & checkET != false & checkMeet != false){
                    db.addRec("event", "ManId", cManID );
                    db.addRec("event", "MeetingId", cMeetID );
                    db.addRec("event", "EventTypeId", cETID );
                    Log.v(TAG, "ОК" );
 
                    Log.v(TAG, "ЗАПИСЬ В ТАБЛИЦУ ЧЕКБОКСИКА" );
                    if (checkboxEvent.isChecked() == true) {
                        db.addRec("event", DB.EVENT_COLUMN_VALUE, 1 );
                        Log.v(TAG, "ОК---1" );
 
                    }else {
                        db.addRec("event", DB.EVENT_COLUMN_VALUE, 0 );
                        Log.v(TAG, "ОК---0" );
                    }
                }
            }
        });
В заранее спасибо за вашу помощь.
Ответ: Ну, обновил ты курсор и что дальше?
Откуда адаптер знает, что данные изменились?
Вопрос: Взаимодействие базы данных на SQLlite и Фрагмента и RecyclerView

Доброго времени суток.
Суть проблемы в следующем: есть база с некоторым набором данных, есть фрагмент, куда внедрен RecyclerView для их отображения. Подтянуть данные из таблицы при загрузке - никаких проблем. Но как правильнее сделать обновление (вероятнее всего RecyclerView) при добавлении и удалении данных?
Ответ: halk0812, да. Я тоже сначала думал, что так плохо, а потом смирился. Там же можно и более хитрые штуки делать публичными. Например, внутренние классы (Item, ViewHolder), интерфейсы (допустим, чтобы забрать все данные из адаптера).