Я использую BaseAdapter
для заполнения элементов в ListView, но мой класс BaseAdapter показывает только один элемент ArrayList. например, я заполнить список массива с этим кодом:Android BaseAdapter dont loop для просмотра всех элементов массива
private static ArrayList<SubCategoriesList> category_items;
...
SubCategoriesList cList = new SubCategoriesList();
cList.id = 0;
cList.users = "1";
cList.group_name = "Group one";
category_items.add(cList);
SubCategoriesList cListA = new SubCategoriesList();
cListA.id = 1;
cListA.users = "2";
cList.group_name = "Group two";
category_items.add(cListA);
category_items.size()
в этой фазе 2. и я ожидаю, что моя ListView есть 2 строки по этому коду:
adapter = new AdapterCategoriesList(G.context, category_items);
uiFiller.lv_main_sub_category_list.setAdapter(adapter);
AdapterCategoriesList адаптер:
public class AdapterCategoriesList extends BaseAdapter {
private LayoutInflater inflater;
private Context context;
private ArrayList<SubCategoriesList> categoryArrayList;
private Object mLock = new Object();
public AdapterCategoriesList(ArrayList<SubCategoriesList> array) {
categoryArrayList = array;
}
public AdapterCategoriesList(Context context, ArrayList<SubCategoriesList> array) {
this.context = context;
inflater = LayoutInflater.from(this.context);
categoryArrayList = array;
}
@Override
public int getCount() {
return categoryArrayList.size();
}
@Override
public SubCategoriesList getItem(int position) {
return categoryArrayList.get(position);
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder mViewHolder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.layout_main_categories_list_item, null);
mViewHolder = new ViewHolder(convertView);
convertView.setTag(mViewHolder);
} else {
mViewHolder = (ViewHolder) convertView.getTag();
}
SubCategoriesList item = getItem(position);
mViewHolder.fillItems(this, item, position);
return convertView;
}
// Java Reflection UI Handler
private static class UiFiller extends HelperUI {
public TextView tv_item_category_users;
public UiFiller(View view) {
parseUi(view);
}
}
private class ViewHolder {
private UiFiller uiFiller;
public ViewHolder(View view) {
uiFiller = new UiFiller(view);
}
public void fillItems(final AdapterCategoriesList adapter, final SubCategoriesList item, final int position) {
uiFiller.tv_item_category_title.setText(item.getGroup_name() + "(" + item.getUsers() + ")");
}
}
}
заявить весь код! например, не объявлять код для класса «HelperUI»? –
добавил ответ, это сработало для вас – apk
@apk проблема 'getView', но я не могу решить сейчас –