Я пытаюсь реализовать ListView
с конкретными значками, заголовками и субтитрами для каждого элемента.
Данные всех элементов находится в ArrayList
объектов из следующих class
:Пользовательский ArrayAdapter без настраиваемого элемента данных типа
class ItemObject{
String title="";
String subTitle="";
String unit="";
int icon;
int quantity;
int parentID;
int orderInList;
}
ArrayList<ItemObject> listViewData;
Вот код, который я использовал первый:
class ExtendedArrayAdapter<String> extends ArrayAdapter<String>{
private Context context;
private String[] items;
public ExtendedArrayAdapter(Context context, String[] items){
super(context,-1,items);
this.context = context;
this.items=items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent){
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View itemView = inflater.inflate(R.layout.lv_item_bg,parent,false);
TextView itemTitle = (TextView)itemView.findViewById(R.id.itemTitle);
TextView itemSubTitle = (TextView)itemView.findViewById(R.id.itemSubTitle);
ImageView itemIcon = (ImageView)itemView.findViewById(R.id.itemIcon);
itemTitle.setText(listViewData.get(position).title);
itemSubTitle.setText(listViewData.get(position).subTitle);
itemIcon.setBackgroundResource(listViewData.get(position).icon);
return itemView;
}
}
Но проблема относительно этого пользовательского ArrayAdapter является то, что ExtendedArrayAdapter
потребности a String[]
от items
, чтобы получить номер ListView
элементов.
Вопрос: Можно ли изменить ExtendedArrayAdapter
класс, чтобы получить непосредственно длину ListView
вместо String[] items
?
EDIT1: В super()
, я могу использовать только следующий набор параметров:
и все должны Array<String>
или List<String>
. Поэтому я не могу использовать ArrayList объектов здесь.
, если удалить 'String []' 'деталей из constructor', и, следовательно, от' super (context, -1, items); ', пустой' ListView' отображается – Behy
не удаляется. Вы должны изменить его либо в ItemObject [], либо в списке < ItemObject> – Blackbelt
. Обратите внимание на EDIT1 – Behy