Я разрабатываю приложение для Android, где у меня есть ListView
в DrawerLayout
, заполненном обычным ListAdapter
. ListView
никогда не заполняется ... Я не могу понять, почему ... Вот установка адаптера к ListView:ListView не заполнен ListAdapter
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_parent);
sideMenuLayout = (DrawerLayout) findViewById(R.id.drawer_base_activity_layout);
menuItemListView = (ListView) findViewById(R.id.sideMenuList);
//Pour les tests afin d'ignorer les certifications SSL
try {
Tools.skipSslCert();
} catch (KeyManagementException | NoSuchAlgorithmException e) {
e.printStackTrace();
}
PsCategoriesServices categoriesServices = new PsCategoriesServices();
categoriesServices.getAllCategories(new OnCategoriesServicesListener(){
@Override
public void OnResponse(ArrayList<Categorie> listCategories) {
for(int catNb = 0; catNb < listCategories.size();catNb++)
{
if(listCategories.get(catNb).getNiveauHierarchique() == FIRST_CATEGORIES_ID)
{
menuItems.add(new SideMenuItem(listCategories.get(catNb)));
}
}
menuAdapter = new MenuListAdapter(getApplicationContext(), menuItems);
menuItemListView.setAdapter(menuAdapter);
}
@Override
public void OnError(VolleyError error) {
// TODO Auto-generated method stub
}
});
}
Я получаю данные из метода OnResponse
.
Вот адаптер:
public class MenuListAdapter extends ArrayAdapter<SideMenuItem> {
private Context mContext;
private ArrayList<SideMenuItem> navDrawerItems;
public MenuListAdapter(Context context, ArrayList<SideMenuItem> navDrawerItemsList){
super(context, 0, navDrawerItemsList);
mContext = context;
navDrawerItems = navDrawerItemsList;
}
@Override
public int getCount() {
return navDrawerItems.size();
}
@Override
public SideMenuItem getItem(int position) {
return navDrawerItems.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
SideMenuItem menuItemtitle = getItem(position);
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.menu_item_layout, parent, false);
}
TextView menuItemTitle = (TextView) convertView.findViewById(R.id.menuItemLink);
menuItemTitle.setText(menuItemtitle.getTitle().toString());
return convertView;
}
}
У меня есть переопределить все методы адаптера, значения не нуль ... метод GetView никогда не вызывается ... Пожалуйста, помогите !! Заранее спасибо !
Я не понимаю, что вы используете setText() в поле адаптера. Вы устанавливаете его из самого текстового поля? – Prakhar
th setText() используется для установки текстового значения элемента ListView. Метод getView даже не достигнут ... –