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

SQLite and ListView. Ввод и вывод данных - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Воспроизвести массив байтов http://www.cyberforum.ru/android-dev/thread1419325.html
Здравствуйте, подскажите пожалуйста как передать массив байтов для воспроизведения?(не записывая в файл)
Программирование Android Обнуление переменной по времени Всем привет. Вопрос: как можно обнулять переменную по конкретному времени? Допустим обнулять раз в день http://www.cyberforum.ru/android-dev/thread1419321.html
SQlite и названия колонок Программирование Android
Вопрос в том, а можно ли использовать русские символы в названиях колонок?
Программирование Android Android: Отправить e-maile испльзуя определленій канал связи (wi-fi, sim1, sim2)
Добрый день!!!! Предистория вопроса: нужно отправить письмо на некий почтовый ящик нажатием одной кнопки на форме. Эта задача оказалась не сложной и при использовании данних ресурсов: 1) http://www.mkyong.com/android/how-to-send-email-in-android/ 2) http://mobiledevtuts.com/android/android-sdk-smtp-email-tutorial/ Сам вопрос: теперь нужно сделать то же самое, но предвартварительно...
Программирование Android Как сделать фон в приложении резиновым http://www.cyberforum.ru/android-dev/thread1419233.html
Пишу простенькое приложение на Android средствами Delphi XE7 и столкнулся с такой проблемой не могу найти решение как сделать фон из картинки так чтобы он был резиновым и автоматически растягивался под нужный размер экрана :cry: P.s заранее Спасибо
Программирование Android Несколько scale в одной анимации Хочу сделать анимацию: в центре экрана появляется точка, затем точка превращается в горизонтальную линию, затем линия вертикально разворачивается во весь экран. Написал такую анимацию:<set xmlns:android="http://schemas.android.com/apk/res/android"> <!-- android:shareInterpolator="false"--> <scale android:pivotX="50%" android:pivotY="50%" ... подробнее

Показать сообщение отдельно
Naomis
6 / 6 / 1
Регистрация: 11.03.2015
Сообщений: 210
Завершенные тесты: 1
17.04.2015, 17:05  [ТС]     SQLite and ListView. Ввод и вывод данных
Armagedo, Rube, не понимаю, и следствием не получается. Ловлю FATAL EXCEPTION: main.
Если взять Любую другую активити, то после добавления данных происходит обновления списка, но таковой такого не происходит.
MainActiviti.java - океешная активити, в которой обновление работает. На сколько я вижу используется только "cursor.requery();" и ничего более,
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
42
43
44
45
public class MainActivity extends Activity {
 
    private static final int CM_DELETE_ID = 1;
    ListView lvData;
    DB db;
    SimpleCursorAdapter scAdapter;
    Cursor cursor;
    EditText etName;
 
    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
 
        etName = (EditText) findViewById(R.id.etName);
 
        // открываем подключение к БД
        db = new DB(this);
        db.open();
 
        // получаем курсор
        cursor = db.getAllData("man");
        startManagingCursor(cursor);
 
        // формируем столбцы сопоставления
        String[] from = new String[] { DB.COLUMN_NAME };
        int[] to = new int[] { R.id.tvText };
 
        // создааем адаптер и настраиваем список
        scAdapter = new SimpleCursorAdapter(this, R.layout.item, cursor, from, to);
        lvData = (ListView) findViewById(R.id.lvDataMauinMan);
        lvData.setAdapter(scAdapter);
 
        // добавляем контекстное меню к списку
        registerForContextMenu(lvData);
    }
 
    // обработка нажатия кнопки
    public void onButtonClick(View view) {
        String name = etName.getText().toString();
        // добавляем запись
        db.addRec("man", DB.COLUMN_NAME, name );
        // обновляем курсор
        cursor.requery();
    }
Но в EventActivity.java(проблемная активити) такого фокуса не проходит.
Java
1
2
scAdapter.changeCursor(cursor); // можно и без этого, но напишу на всякий
scAdapter.notifyDataSetChanged();
Пытался вписать код, что выше, но на это программа ругается и в логах пишет какую-то ересь:
Prolog
1
2
04-17 16:47:42.226    8406-8406/com.example.kirukato.coolstdreg E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.IllegalArgumentException: column 'MeetingId' does not exist
Не понимаю почему она не находит столбца теперь.

код реализовываю так:
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
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
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);
        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, "ТЫК!" );
 
 
 
                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();
                    scAdapter.changeCursor(cur); // можно и без этого, но напишу на всякий
                    scAdapter.notifyDataSetChanged();
                }
 
            }
        });
 
    }
Добавлено через 3 минуты
Указывает как раз на...
Java
1
2
3
           cur.requery();
                    scAdapter.changeCursor(cur); // можно и без этого, но напишу на всякий
                    scAdapter.notifyDataSetChanged();
А именно
Java
1
scAdapter.changeCursor(cur); // можно и без этого, но напишу на всякий
Prolog
1
at com.example.kirukato.coolstdreg.EventActivity$2.onClick(EventActivity.java:206)
Полный лог.
Prolog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
04-17 16:47:42.226    8406-8406/com.example.kirukato.coolstdreg E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.IllegalArgumentException: column 'MeetingId' does not exist
            at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:303)
            at android.widget.SimpleCursorAdapter.findColumns(SimpleCursorAdapter.java:333)
            at android.widget.SimpleCursorAdapter.swapCursor(SimpleCursorAdapter.java:345)
            at android.widget.CursorAdapter.changeCursor(CursorAdapter.java:309)
            at com.example.kirukato.coolstdreg.EventActivity$2.onClick(EventActivity.java:206)
            at android.view.View.performClick(View.java:4421)
            at android.view.View$PerformClick.run(View.java:17903)
            at android.os.Handler.handleCallback(Handler.java:730)
            at android.os.Handler.dispatchMessage(Handler.java:92)
            at android.os.Looper.loop(Looper.java:213)
            at android.app.ActivityThread.main(ActivityThread.java:5225)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:525)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:741)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:557)
            at dalvik.system.NativeStart.main(Native Method)
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru