Форум программистов, компьютерный форум, киберфорум
Наши страницы

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.62
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
#1

ListView - как добавлять данные из БД в начало списка? - Программирование Android

23.12.2014, 10:05. Просмотров 1969. Ответов 52
Метки нет (Все метки)

Здравствуйте. Подскажите, пожалуйста, как сделать, чтобы при добавлении данных в БД - в ListView они попадали в начало списка.
Использую SimpleCursorAdapter...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2014, 10:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос ListView - как добавлять данные из БД в начало списка? (Программирование Android):

Как добавлять записи в начало списка и ограничивать их количество? - Программирование Android
есть listview который берет данные из sqlite, и возникли такие вопросы: 1. как сделать чтоб в базе было не больше 10-ти записей? 2....

Как в ListView добавлять элементы - Программирование Android
всем привет есть ListView , при старте программы одна строчка занята с надписью 1 когда жмёём на кнопку то прибавляется другой 2 1 если...

Как в listview добавлять множество строк? - Программирование Android
Как в listview добавлять множество автоматически генерируемых строк? Литералы не помогают переходить на новую строку. Может, я ошибся...

Как добавлять дополнительные данные - Программирование Android
Скажите как действовать в данной ситуации Допустим, я заполняю Listview У меня внутри есть картинка и текст. Но так же мне над...

Как заставить LisView забивать элементы в начало списка? - Программирование Android
у меня обычный ArrayList из своих элементов ArrayList<Product> products = new ArrayList<Product>(); я добавляю элементы как...

Данные из SQlite в ListView, обработка события ListView - Программирование Android
Ребят, есть БД, ListView. Надо при нажатии на строчку ListView вытащить данные int из БД. mList.setOnItemClickListener(new...

52
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
23.12.2014, 14:30  [ТС] #31
Armagedo, а ткни, плиз, где читать-копать... хорошо бы на великом могучем руссише....
0
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
23.12.2014, 14:49 #32
Так, а что копать?
У тебя используется Calendar.
В базу ложишь Calendar.getTimeInMillis(), а в календарь из базы засовываешь через Calendar.setTimeInMillis(long milliseconds).
Ну, а пользователю отображаешь данные, полученные через упомянутые тобой
calendar.get(Calendar.YEAR)
calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH)
https://developer.android.com/reference/java/util/Calendar.htm

Или шо?
0
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
23.12.2014, 14:56  [ТС] #33
ссылка не работает...

Добавлено через 1 минуту
Цитата Сообщение от Armagedo Посмотреть сообщение
В базу ложишь Calendar.getTimeInMillis(), а в календарь из базы засовываешь через Calendar.setTimeInMillis(long milliseconds).
вот это все очень тяжко....
0
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
23.12.2014, 15:00 #34
Вот здесь ты ложишь "текст" из текствью

String dat = dateText.getText().toString();
а будешь ложить целое
Java
1
2
3
4
5
6
Integer dat = сalendar.getTimeInMillis();
String cat = categoryText.getText().toString();
String debt = sumText.getText().toString();
String kol = kolText.getText().toString();
 
dbS.addRec(dat, cat, debt, kol);
https://developer.android.com/reference/java/util/Calendar.html
0
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
23.12.2014, 15:06  [ТС] #35
Цитата Сообщение от Armagedo Посмотреть сообщение
.getTimeInMillis();
подчеркивает крассным...

Добавлено через 1 минуту
Error126, 39) error: non-static method getTimeInMillis() cannot be referenced from a static context

Error126, 55) error: incompatible types: long cannot be converted to Integer
0
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
23.12.2014, 15:18 #36
Error126, 39) error: non-static method getTimeInMillis() cannot be referenced from a static context
я ж уже исправил - почувствуй разницу

Error126, 55) error: incompatible types: long cannot be converted to Integer
Ну, дай ты ему этот лонг - пусть подавится
Java
1
long dat = сalendar.getTimeInMillis();
0
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
23.12.2014, 15:23  [ТС] #37
да... я тоже так исправил... )))


long dat = Calendar.getInstance().getTimeInMillis();

Добавлено через 28 секунд
только еще пришлось добавить
Цитата Сообщение от Seivan Посмотреть сообщение
getInstance()
Добавлено через 1 минуту
теперь у меня в поле куча циферок... ))))) хочу обратно дату зреть ))
0
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
23.12.2014, 15:29 #38
Эээээээ, дарагой, так мы далеко не уедем.
Всего-то и надо было заглавную поменять на прописную
У тебя есть класс Calendar и объект-переменная calendar.

Я изменил эти буквы, чтобы было правильно в коде.

А то что ты сделал - это нехорошо.
Ты создал новый, абсолютно левый экземпляр Calendar, информация в которм НЕ соответствует инвормации в твоём текствью (в который она попадает из экземпляра calendar)
0
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
23.12.2014, 19:55  [ТС] #39
Спасибо, сделал...

Добавлено через 49 секунд
А как теперь вернуть внятное отображение календаря в поле?

Добавлено через 4 часа 6 минут
Подскажите, плиз, как в ListView отобразить дату не в миллисекундах а в нормальном формате даты...
0
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
23.12.2014, 20:00 #40
Ты всё еще здесь?

Давай сюда код наполнения листвью, лентяй
0
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
23.12.2014, 20:55  [ТС] #41
Не ругайся ))) Я не волшебник - я только учусь... )))

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dbS = new DB(getActivity());
        dbS.open();
        // получаем курсор
        cursor = dbS.getAllData();
        getActivity().startManagingCursor(cursor);
 
        // формируем столбцы сопоставления
        String[] from = new String[]{"dat", "cat", "debt", "kol"};
        int[] to = new int[]{R.id.dat, R.id.cat, R.id.sm, R.id.kol};
        stAdapter = new SimpleCursorAdapter(getActivity(), R.layout.listviev_item, cursor, from, to);
        listv = (ListView) getActivity().findViewById(R.id.listV);
        listv.setAdapter(stAdapter);
 
 
 
                cursor.requery();
Добавлено через 1 минуту
Цитата Сообщение от Seivan Посмотреть сообщение
R.id.dat
- сие то, куда надо вставить нормальную дату...
А сортировка уже работает на ура!! )))

Добавлено через 52 минуты
Armagedo, Помоги лентяю, пожалуйста!(((
0
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
23.12.2014, 21:37 #42
Пробуй

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
dbS = new DB(getActivity());
dbS.open();
// получаем курсор
cursor = dbS.getAllData();
getActivity().startManagingCursor(cursor);
 
        // формируем столбцы сопоставления
String[] from = new String[]{"dat","cat", "debt", "kol"};
int[] to = new int[]{R.id.dat, R.id.cat, R.id.sm, R.id.kol};
            
stAdapter = new SimpleCursorAdapter(getActivity(), R.layout.listviev_item, cursor, from, to){
 
            @Override
            public void setViewText(TextView v, String text){
                                            
              if (v.getId()==R.id.dat){
                  Calendar tempCalendar = Calendar.getInstance();
                  tempCalendar.setTimeInMillis(Integer.valueOf(text));
                  String tmpText="";
                  tmpText+=String.valueOf(tempCalendar.get(Calendar.DAY_OF_MONTH));
                  tmpText+="."+String.valueOf(tempCalendar.get(Calendar.MONTH));
                  tmpText+="."+String.valueOf(tempCalendar.get(Calendar.YEAR));
                  v.setText(tmpText);
              }
              else super.setViewText(v, text);
              
                           
              
             }
};
 
listv = (ListView) getActivity().findViewById(R.id.listV);
listv.setAdapter(stAdapter);
 
cursor.requery();
0
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
23.12.2014, 22:01  [ТС] #43
Цитата Сообщение от Armagedo Посмотреть сообщение
tempCalendar.setTimeInMillis(Integer.valueOf(text));
Тут выдает ошибку.... (((
0
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
23.12.2014, 22:04 #44
Какую?
0
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
23.12.2014, 22:11  [ТС] #45
java.lang.NumberFormatException: Invalid int: "1419361240990"
at java.lang.Integer.invalidInt(Integer.java:138)
at java.lang.Integer.parse(Integer.java:378)
at java.lang.Integer.parseInt(Integer.java:366)
at java.lang.Integer.parseInt(Integer.java:332)
at java.lang.Integer.valueOf(Integer.java:490)
at piton.ru.myincome.fragments.AllFragment$1.setViewText(AllFragment.java:80)
at android.widget.SimpleCursorAdapter.bindView(SimpleCursorAdapter.java:156)
at android.widget.CursorAdapter.getView(CursorAdapter.java:250)
at android.widget.AbsListView.obtainView(AbsListView.java:2267)
at android.widget.ListView.measureHeightOfChildren(ListView.java:1244)
at android.widget.ListView.onMeasure(ListView.java:1156)
at android.view.View.measure(View.java:15172)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1390)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:681)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
at android.view.View.measure(View.java:15172)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:15172)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:15172)
at android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.java:851)
at android.view.View.measure(View.java:15172)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at android.view.View.measure(View.java:15172)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:833)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:574)
at android.view.View.measure(View.java:15172)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4814)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2148)
at android.view.View.measure(View.java:15172)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1848)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1100)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1273)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:998)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4212)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
at android.view.Choreographer.doCallbacks(Choreographer.java:555)
at android.view.Choreographer.doFrame(Choreographer.java:525)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)

Добавлено через 34 секунды
Цитата Сообщение от Seivan Посмотреть сообщение
at piton.ru.myincome.fragments.AllFragment$1.setViewText(AllFragment.java:80)
Это мой класс...

Добавлено через 3 минуты
Ошибку выдает при вставке записи...
0
23.12.2014, 22:11
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2014, 22:11
Привет! Вот еще темы с ответами:

Как записывать данные из SQLite в ListView - Программирование Android
Здравствуйте, задался таким вопросом. Есть SQLite таблица, данные в которой берутся из EditText. Я хочу их записывать их в ListView,...

Как обратиться к элементу (button) внутри пункта списка (ListView) - Программирование Android
Здравствуйте! Помогите, пожалуйста Есть активити с ListView. В каждом пункте списка есть пару TextView и один Button. Как и где ...

Как распарсить страницу и записать данные в ListView? - Программирование Android
Добрый день , Киборги! Прошлая тема ,созданная мною в данном разделе , касалась вопроса WebView'a ,но теперь все стало предельно ясно. ...

Прокрутка ListView в начало при обновлении EditText - Программирование Android
Всем привет! Проблема следующая - имеется ListView с адаптером. Элементы ListView - кастомные вьюшки с EditText. Если список очень большой,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
45
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru