Как вынести в отдельный класс ListView?

Ответить
Corvus
Сообщения: 9
Зарегистрирован: 10 окт 2012, 08:22

Как вынести в отдельный класс ListView?

Сообщение Corvus » 18 янв 2015, 07:11

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

Код: Выделить всё

OnClickListener myBtnSearchAct = new OnClickListener() {
            @Override
            public void onClick(View v) {
                db.delTMPTable();
                db.addTMPTable(listOfProductsID);
                Log.d("My Log - list pr", listOfProductsID.toString());
                listOfProductsID.clear();
                adapterOfPr.clear();
                food_search_view.setVisibility(View.INVISIBLE);
                recipe_list.setVisibility(View.VISIBLE);
                String[] from = { "ID", "TITLE" };
                int[] to = { R.id.txtRecipeIDList, R.id.txtRecipeTitleList};
                final SimpleAdapter sAdapter = new SimpleAdapter(getActivity(), db.SearchRecipe(), R.layout.listview_item_row, from, to);
                ListView lv = (ListView)RecipeView.findViewById(R.id.listViewRecipeList);
                lv.setAdapter(sAdapter);
                sAdapter.notifyDataSetChanged();
            }
        };
и именно этот кусочек пришлось в OnClickListener засунуть

Код: Выделить всё

final SimpleAdapter sAdapter = new SimpleAdapter(getActivity(), db.SearchRecipe(), R.layout.listview_item_row, from, to);
                ListView lv = (ListView)RecipeView.findViewById(R.id.listViewRecipeList);
                lv.setAdapter(sAdapter);
                sAdapter.notifyDataSetChanged();
Так как данные почему то не обновляются, и запрос к db.SearchRecipe() не идет (точнее сказать знаю причину но решить не могу, так как инициализация симпл адаптера находится в теле, а нужно по клику )

И вопрос, можно ли как то не только ListView но и любую вьюшку вынести в отдельный класс, в отдельный файл? Или как лучше сделать повторное создание по клику с новыми данными? А проблему эту нужно решить, так как нужно для симпладаптера повесить свой обработчик..но обработчик кликов внутри другого выглядит..как минимум глупо.

Ответить