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

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

Войти
Регистрация
Восстановить пароль
 
Shamsik
-42 / 17 / 5
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
#1

Подгрузка еще информации из базы MYSQL - Программирование Android

01.04.2016, 19:27. Просмотров 284. Ответов 6
Метки нет (Все метки)

Добрый день

Вот у меня сейчас выводится полный список категорий.

Вот как сделать чтобы к примеру первый вывод был 10 разделов потом когда доходит до конца подгружались бы еще 10 и ....

в базе к запросу подключить



LIMIT 10 , OFFSET $_GET['offset']


Вот код получения категорий

Кликните здесь для просмотра всего текста
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
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
public class ItemCategoryID extends AppCompatActivity
{
 
    ListView lv;
 
    // Прогресс диалог
    private ProgressDialog pDialog;
 
    // Создаем объект JSON Parser
    JSONParser jsonParser = new JSONParser();
 
    ArrayList<HashMap<String, String>> CatsList;
 
    // JSONArray
    JSONArray catslist = null;
 
    // Идентификатор каталога
    String cat_id, cat_name;
 
    String error;
 
 
    // Все необходимые параметры
    private static final String TAG_ID = "id";
    private static final String TAG_TITLE = "title";
 
 
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_subcat);
 
        // Получение ID_CAT
        Intent i = getIntent();
        cat_id = i.getStringExtra("id_cat");
 
        // Hashmap для ListView
        CatsList = new ArrayList<HashMap<String, String>>();
 
        // Загружаем все необходимые подкатегории
        new LoadTracks().execute();
 
        // Получение listview
        lv = (ListView) findViewById(R.id.listView);
 
 
        /**
         * ListView по пункту клик слушателя
         * ItemCategoryJurnal активность будет запущен с помощью проходящего калога
         * */
        lv.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener()
        {
            @Override
            public void onItemClick(AdapterView<?> arg0, View view, int arg2,
                                    long arg3)
            {
                String cat_id = ((TextView) view.findViewById(R.id.cat_id)).getText().toString();
            }
        });
 
    }
 
 
    class LoadTracks extends AsyncTask<String, String, String>
    {
 
        protected String doInBackground(String... args)
        {
 
            List<NameValuePair> params = new ArrayList<NameValuePair>();
 
 
            params.add(new BasicNameValuePair(TAG_ID, cat_id));
 
 
            String json = jsonParser.makeHttpRequest(URL_ITEM_CATEGORYID, "GET",
                    params);
 
            // Проверьте LogCat для ответа JSON
            Log.d("Subcategory JSON: ", json);
 
            try
            {
                JSONObject jObj = new JSONObject(json);
 
                if (jObj != null)
                {
                    //Информация о категории
                    String catalog_id = jObj.getString(TAG_ID);
 
                        catslist = jObj.getJSONArray(TAG_SUBCAT);
 
                        if (catslist != null) 
                        {
                            for (int i = 0; i < catslist.length(); i++)
                            {
                                JSONObject c = catslist.getJSONObject(i);
                                
                                // Сохранение каждого элемента JSon в переменной
                                String song_id = c.getString(TAG_ID);
 
                                // создаем новый HashMap
                                HashMap<String, String> map = new HashMap<String, String>();
 
                                // Записываем в новый HashMap ключ и значение
                                map.put("catalog_id", catalog_id);
 
                                // добавление списка Hash к ArrayList
                                CatsList.add(map);
                            }
                        } else
                        {
                            Log.d("Subcat: ", "null");
                        }
 
                }
 
            } catch (JSONException e)
            {
                e.printStackTrace();
            }
 
            return null;
        }
 
        protected void onPostExecute(String file_url)
        {
 
            pDialog.dismiss();
 
            runOnUiThread(new Runnable()
            {
                public void run()
                {
                    ListAdapter adapter = new SimpleAdapter
                            (
                                    ItemCategoryID.this, CatsList,
                                    R.layout.list_item_subcat, new String[]{"catalog_id"}, new int[]
                                    {
                                            R.id.cat_id
                                    }
                            );
 
 
                    lv.setAdapter(adapter);
                }
            });
 
        }
 
    }


Вот код. Скажите что тут добавить чтобы работало прокрутка Пожалуйста. очень нужно заранее спасибо.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2016, 19:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подгрузка еще информации из базы MYSQL (Программирование Android):

Url базы данных MySQL в Denwer - Программирование Android
Пытаюсь подключиться к базе данных денвера... вопрос: какой правильный путь к ней прописать? try { ... Connection conn =...

Подгрузка данных из базы mysql с последующей генерацией html и подстановкой извлеченных данных - PHP
на сайте есть форма подачи заявки. после подачи , на главной странице должно отображаться фото и свойства заявленного. данные из формы...

MySQL ввод и вывод информации базы данных - Delphi БД
Добрый вечер у меня токая проблема пользуюсь ZEOS Подскажите как вытенуть из базы MySQL данные в переменную и как из переменной засунуть...

SQLite Подгрузка информации из БД - Delphi БД
Есть форма на которой происходит выбор определенного параметра. После выбора происходит открытие новый формы. В параметре, который выбран...

Подгрузка информации с HTML - C#
Подгрузка информации с HTML В нем имеется &lt;td&gt;AUD&lt;/td&gt;&lt;td class=&quot;textcol&quot; align=&quot;left&quot;&gt;1 австралийский доллар&lt;/td&gt;&lt;td&gt; ...

Подгрузка информации на страницу - JavaScript
Здравствуйте, уважаемые форумчане. Подскажите, возможно ли чтобы по нажатии кнопки на странице в эту же страницу подгружалась еще одна...

6
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
01.04.2016, 20:01 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Shamsik, нужно сделать следующее.
1. Добавить OnScrollListener для listview и определять, когда пользователь долистал до конца.
2. В params добавлять параметр offset, плюсуя каждую подгрузку
1
Shamsik
-42 / 17 / 5
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
01.04.2016, 20:58  [ТС] #3
Спасибо большое.

Помогите пожалуйста с одним небольшим нюансом
Java
1
2
3
4
5
6
7
List<NameValuePair> params = new ArrayList<NameValuePair>();
 
 // Разместить идентификатор каталога в качестве параметра GET
            params.add(new BasicNameValuePair(TAG_ID, cat_id));
 // Получать JSON строку из URL
            String json = jsonParser.makeHttpRequest(AppConfig.URL_ITEM_CATEGORYID, "GET",
                    params);

вот в params у меня отправляется одно значение подскажи пожалуйста как добавить еще одну просто, просто когда добавляю еще ошибку получаю

Добавлено через 7 минут
Все разобрался уже.

Добавлено через 35 секунд
Спасибо тебе.

Добавлено через 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
    private int visibleThreshold = 5;
    private int currentPage = 0;
    private int previousTotal = 0;
    private boolean loading = true;
 
 
        lv.setOnScrollListener(new AbsListView.OnScrollListener() 
        {
            @Override
            public void onScroll(AbsListView view, int firstVisibleItem,
                                 int visibleItemCount, int totalItemCount) {
                if (loading) {
                    if (totalItemCount > previousTotal) {
                        loading = false;
                        previousTotal = totalItemCount;
                        currentPage++;
                    }
                }
                if (!loading && (totalItemCount - visibleItemCount) <= (firstVisibleItem + visibleThreshold)) {
                    // I load the next page of gigs using a background task,
                    // but you can call any function here.
                    new LoadTracks().execute(String.valueOf(currentPage + 1));
                    loading = true;
                }
            }
 
            @Override
            public void onScrollStateChanged(AbsListView view, int scrollState) {
            }
 
        });
Вот этот написал.

Но не могу понять почему он грузить одну и уже информацию.

Может где та проблема. скажите да пожалуйста.
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
01.04.2016, 21:08 #4
Shamsik, асинк таску покажите
0
Shamsik
-42 / 17 / 5
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
01.04.2016, 21:56  [ТС] #5
Кликните здесь для просмотра всего текста


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
    class LoadTracks extends AsyncTask<String, String, String>
    {
        @Override
        protected void onPreExecute()
        {
            super.onPreExecute();
            pDialog = new ProgressDialog(ItemCategoryID.this);
            pDialog.setMessage("Загрузка каталогов ...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(false);
            pDialog.show();
        }
 
        protected String doInBackground(String... args)
        {
            // Параметры
            List<NameValuePair> params = new ArrayList<NameValuePair>();
 
            // Разместить идентификатор каталога в качестве параметра GET
            params.add(new BasicNameValuePair(TAG_ID, cat_id));
            params.add(new BasicNameValuePair("offset", Integer.toString(currentPage)));
 
            // Получать JSON строку из URL
            String json = jsonParser.makeHttpRequest(URL_ITEM_CATEGORYID, "GET",
                    params);
 
            // Проверьте LogCat для ответа JSON
            Log.d("Subcategory JSON: ", json);
 
            try
            {
                JSONObject jObj = new JSONObject(json);
 
                if (jObj != null)
                {
                    String catalog_id = jObj.getString(TAG_ID);
 
                    error = jObj.getString(TAG_ERROR);
                        catslist = jObj.getJSONArray(TAG_SUBCAT);
 
                        if (catslist != null) 
                        {
                            for (int i = 0; i < catslist.length(); i++)
                            {
                                JSONObject c = catslist.getJSONObject(i);
                                String song_id = c.getString(TAG_ID);
 
                                HashMap<String, String> map = new HashMap<String, String>();
 
                                map.put("catalog_id", catalog_id);
                                CatsList.add(map);
                            }
                        } else
                        {
                            Log.d("Subcat: ", "null");
                        }
 
                }
 
            } catch (JSONException e)
            {
                e.printStackTrace();
            }
 
            return null;
        }
 
 
        protected void onPostExecute(String file_url)
        {
            // закрыть диалоговое окно после получения всех категорий
            pDialog.dismiss();
            runOnUiThread(new Runnable()
            {
                public void run()
                {
                    ListAdapter adapter = new SimpleAdapter
                            (
                                    ItemCategoryID.this, CatsList,
                                    R.layout.list_item_subcat, new String[]{"catalog_id"}, new int[]
                                    {
                                            R.id.cat_id
                                    }
                            );
 
                    lv.setAdapter(adapter);
 
                }
            });
 
        }
 
    }


Вот

Добавлено через 1 минуту
PHP Так

PHP
1
$db->query("SELECT `id`,`name` FROM `cat` WHERE `icat` = '{$id}' LIMIT 15 OFFSET {$_GET['offset']} ");
Добавлено через 36 минут
Я тут нашел один класс, но не получается его подключить к проекту.

https://github.com/lalit3686/ListVie...nActivity.java
0
YuraAAA
1577 / 1318 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
01.04.2016, 21:58 #6
Shamsik, offset параметр должен быть равен limit*pageIndex. Т.е. первая страница - offset - 0. Вторая - offset 15, третья - offset 30
0
Shamsik
-42 / 17 / 5
Регистрация: 23.12.2013
Сообщений: 521
Записей в блоге: 1
Завершенные тесты: 2
02.04.2016, 09:23  [ТС] #7
Можешь да небольшим кодом пояснить.

Java
1
2
3
4
MAX_ROWS = 20;
 
 
params.add(new BasicNameValuePair("offset", Integer.toString(MAX_ROWS*15)));
Добавлено через 26 секунд
Пожалуйста а то уже сколько парюсь никак не могу разобраться.

Добавлено через 20 минут
Блин ну никак не получается он выводит, одно и то же все время хоть и проходит обновление.

Добавлено через 46 минут
В принципе разобрался но почему та при каждом обновление контента scroll поднимается на вверх.

Нельзя чтобы он оставался там все было. и просматривать дальше.

Добавлено через 40 минут
Кликните здесь для просмотра всего текста


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
    class LoadTracks extends AsyncTask<String, String, String>
    {
        @Override
        protected void onPreExecute()
        {
            super.onPreExecute();
            pDialog = new ProgressDialog(ItemCategoryID.this);
            pDialog.setMessage("Загрузка каталогов ...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(false);
            pDialog.show();
        }
 
        protected String doInBackground(String... args)
        {
            // Параметры
            List<NameValuePair> params = new ArrayList<NameValuePair>();
 
            params.add(new BasicNameValuePair("offset", Integer.toString(10 * currentPage)));
 
            // Получать JSON строку из URL
            String json = jsonParser.makeHttpRequest(URL_ITEM_CATEGORYID, "GET",
                    params);
 
            // Проверьте LogCat для ответа JSON
            Log.d("Subcategory JSON: ", json);
 
            try
            {
                JSONObject jObj = new JSONObject(json);
 
                if (jObj != null)
                {
                    String catalog_id = jObj.getString(TAG_ID);
 
 
                    catslist = jObj.getJSONArray(TAG_SUBCAT);
 
                    if (catslist != null)
                    {
                        for (int i = 0; i < catslist.length(); i++)
                        {
                            JSONObject c = catslist.getJSONObject(i);
                            String song_id = c.getString(TAG_ID);
 
                            // создаем новый HashMap
                            HashMap<String, String> map = new HashMap<String, String>();
 
                            // Записываем в новый HashMap ключ и значение
                            map.put("catalog_id", catalog_id);
                            CatsList.add(map);
                        }
                    } else
                    {
                        Log.d("Subcat: ", "null");
                    }
 
                }
 
            } catch (JSONException e)
            {
                e.printStackTrace();
            }
 
            return null;
        }
 
        protected void onPostExecute(String file_url)
        {
            pDialog.dismiss();
            runOnUiThread(new Runnable()
            {
                public void run()
                {
                    ListAdapter adapter = new SimpleAdapter
                            (
                                    ItemCategoryID.this, CatsList,
                                    R.layout.list_item_subcat, new String[]{"catalog_id"}, new int[]
                                    {
                                            R.id.cat_id
                                    }
                            );
 
                    lv.setAdapter(adapter);
                }
            });
 
        }
 
    }


Вот как я сделал. он работает но он обновляется постоянное и точна остановки сбрасывается и scroll переносится на вверх.



OnScroll
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
            @Override
            public void onScroll(AbsListView view, int firstVisibleItem,
                                 int visibleItemCount, int totalItemCount)
            {
                if (loading)
                {
                    if (totalItemCount > previousTotal)
                    {
                        loading = false;
                        previousTotal = totalItemCount;
                        currentPage++;
                    }
                }
                if (!loading && (totalItemCount - visibleItemCount) <= (firstVisibleItem + visibleThreshold))
                {
                    new LoadTracks().execute();
                    loading = true;
                }
            }
Вот помогите да ребята хоть с этой проблемой.

Добавлено через 9 часов 28 минут
Ну ребята очень нужно я уже не понимаю что делать.

Блин помогите да с этим Scroll.
0
02.04.2016, 09:23
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.04.2016, 09:23
Привет! Вот еще темы с ответами:

Подгрузка информации на одной странице PHP - PHP
Подскажите способы подгрузить информацию на одной странице при осуществлении каких-либо действий на странице (нажатие кнопки и т.п.)...

Автоматическая подгрузка информации при прокрутке страницы Ajax - jQuery
Нужно реализовать на сайте такую штуку. Из БД идёт вывод опредённой информации, нужно что бы сначала загрузило последние 20 записей, потом...

WP + Cheri, подгрузка цен откуда-то из базы - WordPress
https://seoquick.com.ua WP + CherryFramework. Есть в нем плагин создающий такие странички, с возможностью создания дополнительных...

Динамическая подгрузка данных из MySQL в select - PHP БД
Всем привет, ребят помогите решить проблему. В Базе MySQL имеется три таблицы ( Ребенок, Лагерь, Заявки ). В таблицу Заявки добавляются...


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

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

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