#android #java #массивы
Делаю через ArrayAdapter, но в нем получается применить только к одной item_list. Код неправильный, но все же: Listnamelist = new ArrayList (); List streetlist = new ArrayList (); for(int i=0;i adapter = new ArrayAdapter (getActivity(), R.layout.item_list_service, R.id.item_text_service, namelist); ArrayAdapter adapter2 = new ArrayAdapter (getActivity(), R.layout.item_list_service, R.id.item_text_street_service, streetlist); mDrawerList.setAdapter(adapter); mDrawerList.setAdapter(adapter2);
Ответы
Ответ 1
для реализации двух текстовых полей в айтеме ListView вовсе не обязательно делать свой кастомный адаптер - стандартный SimpleAdapter (SimpleCursorAdapter) отлично с этим справляется , так же он позволяет еще и картинку разместить . Есть и пара-тройка вариантов стандартной разметки в фреймворке Android под это дело , вроде simple_list_item_2.xml / Часто проще и рациональнее воспользоваться готовыми инструментами , чем дублировать имеющююся функциональность увеличивая код . в качестве примераОтвет 2
Код Адаптера private class CatAdpter extends ArrayAdapter { public CatAdpter(Context context) { super(context, R.layout.list_id_name_adapter, spsBD); // TODO Auto-generated constructor stub } @SuppressLint("InflateParams") @Override public View getView(int position, View convertView, ViewGroup parent){ SpsBD spsBD = getItem(position); if(convertView == null){ convertView = LayoutInflater.from(getContext()) .inflate(R.layout.list_id_name_adapter, null); } ((TextView) convertView.findViewById(R.id.tvIdSPSListAdapter)).setText(spsBD.idSps); ((TextView) convertView.findViewById(R.id.tvNameSPSListAdapter)).setText(spsBD.nameSps); return convertView; } }
Комментариев нет:
Отправить комментарий