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

Перерисовка View в Fragment - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Как подгрузить данные в AutoCompleteTextView? http://www.cyberforum.ru/android-dev/thread1501536.html
Здравствуйте, снова столкнулся с проблемой адаптеров. Суть такая, что при запуске определенного фрагмента в AutoCompleteTextView должны загрузиться данные для того чтобы можно было найти определенное...
Программирование Android Приём текста по Bluetooth. Ошибки в символах Добрый день. Прошу особо не пинать. Вопрос чисто технический. Второй день ищу по поисковикам, заметил что не я один сталкивался с такой проблемой. Суть в чем. Есть связка: Контроллер - HC-06 -... http://www.cyberforum.ru/android-dev/thread1501431.html
Программирование Android Admob - краш при запуске приложения (could not find class)
имеем: -ADT eclipse -через SDK скачан API19 (только SDK Platform - не знаю критично ли это) -через SDK скачан google-play-services -импортирован google-play-services (при импорте выбрано...
Программирование Android Ошибка sqlite3: not found
при ввода команды в терминале android shell sqlite3 /data/data/com.android.app/databases/modle после подключению к устройству через adb терминал android shell выдает ошибку sqlite3: not found с чем...
Программирование Android Разрешения приложения http://www.cyberforum.ru/android-dev/thread1501189.html
Ребят подскажите пожалуйста Как можно дать права приложению на пользование wi-fi Раньше на ходил такое А сейчас вообще никак не могу найти Добавлено через 5 минут Даже не такой вопрос Это я...
Программирование Android Своя тема. Вылетает Themes.xml <?xml version="1.0" encoding="utf-8"?> <resources> <!-- Base application theme. --> <style name="AppTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar"> ... подробнее

Показать сообщение отдельно
DeadRayder
0 / 0 / 0
Регистрация: 28.11.2014
Сообщений: 25

Перерисовка View в Fragment - Программирование Android

19.07.2015, 22:44. Просмотров 562. Ответов 0
Метки (Все метки)

Здравствуйте! Помогите разобраться, если я правильно понимаю, то свойство ViewPager-а setOffscreenPageLimit, позволяет указать ему, сколько View хранить в памяти. Я установил значение на 0, таким образом я надеялся получить при переходе между фрагментами каждый раз новую перерисовку View. И вот либо ничего не перерисовывается, либо я неправильно выполняю добавление в ListView. У меня есть переопределенный метод OnCreateView в котором в зависимости от номера страницы, рисуется какое-то View. Так вот я пытался целый день сделать так, чтобы по нажатию на элемент одного ListView, передать его в другой фрагмент и отобразить в другом ListView. Создал адаптер и указал обновление данных:
Java
1
2
mAda = new ArrayAdapterItem(getActivity(),basketCollection);
 mAda.setNotifyOnChange(true);
Для ListView в методе setOnItemLongClickListener указал добавление элемента в этот адаптер

//пока что пытаюсь добавить хоть какой то элемент, но тут должен быть именно тот, который пользователь
//выбрал в ListView
Java
1
mAda.add(new PorductItem("fdsaf", "fdaf", "fdasf", "fdasfasd", "fasdfas"));
А вот так в другом фрагменте пытаюсь отрисовать элемент во View:
Java
1
2
3
4
5
6
7
8
else if(pageNumber == 1)
        {
            view = inflater.inflate(R.layout.fragment_basket,null);
            mAda.add(new PorductItem("1", "fdaf", "fdasf", "fdasfasd", "fasdfas"));
            basketList = (ListView) view.findViewById(R.id.list_view_basket);
            basketList.setAdapter(mAda);
            return  view;
        }
Ничего не выходит, в список выводится только элемент, который я сам добавил при создании 2-го фрагмента, дальше ничего не меняется. Нельзя ли как то намеренно вызывать перерисовку View? Прикреплю на всякий случай полный метод OnCreateView и прошу прощения за кучу лишних строк)
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
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
 
        View view;
        mAda = new ArrayAdapterItem(getActivity(),basketCollection);
        mAda.setNotifyOnChange(true);
 
        if (pageNumber == 0) {
 
            view = inflater.inflate(R.layout.fragment, null);
 
            ArrayList<Products> prodCollectionForSearch = new ArrayList<>();
 
            //prodCollectionForSearch = Query(SelectCityScreen.mCity);
            ResultSet rs1;
            try {
                Statement statement = MainActivity.connect.createStatement();
                rs1 = statement.executeQuery("select top 10 *\n" +
                        "from EXPORT_TABLE\n" +
                        "where City_name = 'Москва' AND Quantity = 1");
 
                while (rs1.next())
                {
                    prodCollectionForSearch.add(new Products(rs1.getString("Product_name")));
                }
 
                ArrayAdapterProduct prodAdapter = new ArrayAdapterProduct(getActivity().getApplicationContext(),prodCollectionForSearch);
                mAutoCompleteSearchProduct = (AutoCompleteTextView) view.findViewById(R.id.search_product_autoCompl);
                mAutoCompleteSearchProduct.setAdapter(prodAdapter);
 
            } catch (SQLException e) {
                e.printStackTrace();
            }
 
 
            ArrayList<PorductItem> productCollection = new ArrayList<>();
 
            ResultSet rs2;
            try {
                Statement statement = MainActivity.connect.createStatement();
                rs2 = statement.executeQuery("select TOP 50 * \n" +
                        "from EXPORT_TABLE\n" +
                        "where City_name = '"+ SelectCityScreen.mCity +"' AND Quantity = 1");
 
                while (rs2.next())
                {
                    productCollection.add(new PorductItem(rs2.getString("Product_name"),
                            rs2.getString("Price"),
                            rs2.getString("shop_name"),
                            rs2.getString("Barcode_value"),
                            rs2.getString("address")));
                }
 
                final ArrayAdapterItem mAdap = new ArrayAdapterItem(getActivity(),productCollection);
                mList = (ListView) view.findViewById(R.id.liiiiiiiiiiiiiiiist);
                mList.setAdapter(mAdap);
 
 
 
                mList.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
                    @Override
                    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {
                       // basketCollection.add((PorductItem) parent.getItemAtPosition(position));
                     //   basketCollection.add(new PorductItem("fdsaf", "fdaf", "fdasf", "fdasfasd", "fasdfas"));
                     //
                        mAda.add(new PorductItem("fdsaf", "fdaf", "fdasf", "fdasfasd", "fasdfas"));
                    //    mAda.notifyDataSetChanged();
                    //    mAda = new ArrayAdapterItem(getActivity(),basketCollection);
                    //    basketList = (ListView) view.findViewById(R.id.list_view_basket);
                    //    mAda.notifyDataSetChanged();
                    //    basketList.setAdapter(mAda);
                        Toast.makeText(getActivity(),"Товар" + position + "был добавлен в корзину", Toast.LENGTH_LONG).show();
                        return false;
 
                    }
                });
 
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return  view;
        }
        else if(pageNumber == 1)
        {
            view = inflater.inflate(R.layout.fragment_basket,null);
         //   mAda.add(new PorductItem("2", "fdaf", "fdasf", "fdasfasd", "fasdfas"));
         //   mAda.add(new PorductItem("3", "fdaf", "fdasf", "fdasfasd", "fasdfas"));
          //  mAda = new ArrayAdapterItem(getActivity(),basketCollection);
 
            mAda.add(new PorductItem("1", "fdaf", "fdasf", "fdasfasd", "fasdfas"));
            basketList = (ListView) view.findViewById(R.id.list_view_basket);
            basketList.setAdapter(mAda);
            return  view;
        }
        else
        {
            view = inflater.inflate(R.layout.fragment_sale,null);
            return  view;
 
        }
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru