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

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

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

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

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

Здравствуйте. Подскажите, пожалуйста, как сделать, чтобы при добавлении данных в БД - в ListView они попадали в начало списка.
Использую SimpleCursorAdapter...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.12.2014, 10:05     ListView - как добавлять данные из БД в начало списка?
Посмотрите здесь:
Android Как добавлять записи в начало списка и ограничивать их количество?
Android Как в ListView добавлять элементы
Android Как в listview добавлять множество строк?
Как добавлять дополнительные данные Android
Android Как заставить LisView забивать элементы в начало списка?
Android Как записывать данные из SQLite в ListView
Android Как обратиться к элементу (button) внутри пункта списка (ListView)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
23.12.2014, 20:55  [ТС]     ListView - как добавлять данные из БД в начало списка? #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, Помоги лентяю, пожалуйста!(((
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
23.12.2014, 21:37     ListView - как добавлять данные из БД в начало списка? #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();
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
23.12.2014, 22:01  [ТС]     ListView - как добавлять данные из БД в начало списка? #43
Цитата Сообщение от Armagedo Посмотреть сообщение
tempCalendar.setTimeInMillis(Integer.valueOf(text));
Тут выдает ошибку.... (((
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
23.12.2014, 22:04     ListView - как добавлять данные из БД в начало списка? #44
Какую?
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
23.12.2014, 22:11  [ТС]     ListView - как добавлять данные из БД в начало списка? #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 минуты
Ошибку выдает при вставке записи...
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
23.12.2014, 22:13     ListView - как добавлять данные из БД в начало списка? #46
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ну, так подсунь же ж ты ему long

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
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){
                
           SimpleDateFormat sdf = new SimpleDateFormat("dd MMM yyyy");
        
           Calendar tempCalendar = Calendar.getInstance();
           tempCalendar.setTimeInMillis(Long.parseLong(text));
        
           String tmpText = sdf.format(tempCalendar.getTime()));
        
           v.setText(tmpText);
         }
        else super.setViewText(v, text);
       }
};
listv = (ListView) getActivity().findViewById(R.id.listV);
listv.setAdapter(stAdapter);
cursor.requery();
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
23.12.2014, 22:20  [ТС]     ListView - как добавлять данные из БД в начало списка? #47
уже без ошибок, но выдает, например, дату: 23 12 201423.11.2014
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
23.12.2014, 22:23     ListView - как добавлять данные из БД в начало списка? #48
Ну, я ж тебе уже модифицировал код под другое исполнение...

Или к номеру месяца прибавляй еще единичку - месяца начинаются нумероваться с 0
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
23.12.2014, 22:41  [ТС]     ListView - как добавлять данные из БД в начало списка? #49
У меня, получается, дублирует дату... не врублюсь - как это наладить... ((((

Добавлено через 10 минут
Нашел лишнее... ))) Тебе снова плюсики!!!!

Добавлено через 1 минуту
вот так - работает и отображает усё намана!!!

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if (v.getId() == R.id.dat){
 
                    SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy");
 
                    Calendar tempCalendar = Calendar.getInstance();
//                    tempCalendar.setTimeInMillis(Long.parseLong(text));
 
                    String tmpText = sdf.format(tempCalendar.getTime());
 
//                    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);
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
23.12.2014, 22:44     ListView - как добавлять данные из БД в начало списка? #50
Брехня, не будет оно нормально работать с данными из таблицы...
Раскоменти код строки номер 6!!!!
Нах ты ее закомментил?
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
23.12.2014, 22:47  [ТС]     ListView - как добавлять данные из БД в начало списка? #51
Фиг вам, как говорится.... дата не меняется.... (((( хотя, формат оной - нормальный...

Добавлено через 1 минуту
СПАСИБОЧКИ!!!!! Еще Плюс!!!!

Добавлено через 50 секунд
не могу добавить плюс... (((( чего так????
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
23.12.2014, 22:48     ListView - как добавлять данные из БД в начало списка? #52
Всё, давай, учись.
Удачи
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2014, 22:49     ListView - как добавлять данные из БД в начало списка?
Еще ссылки по теме:
Как распарсить страницу и записать данные в ListView? Android
Прокрутка ListView в начало при обновлении EditText Android
Android ListView: сбивается содержимое ImageView элемента при скроллинге + как сделать выделение пункта списка при нажатии?
Элемент списка listView и БД SQLlite Android
Android Оформление элемента списка ListView

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

Или воспользуйтесь поиском по форуму:
Seivan
1 / 1 / 0
Регистрация: 17.12.2013
Сообщений: 97
23.12.2014, 22:49  [ТС]     ListView - как добавлять данные из БД в начало списка? #53
Спасииииибоооо!!!! ))))
Yandex
Объявления
23.12.2014, 22:49     ListView - как добавлять данные из БД в начало списка?
Ответ Создать тему
Опции темы

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