【发布时间】:2015-07-06 09:33:10
【问题描述】:
我正在开发一个 Android 应用程序,其中有一个 ListView 中的 DrawerLayout 由自定义 ListAdapter 填充。 ListView 永远不会被填充...我不知道为什么...
这是适配器到ListView的设置:
@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() 部分。你是从 textview 本身设置它吗?
-
第 setText() 用于设置 ListView 项的文本值。甚至没有达到 getView 方法...
标签: android listview android-listview adapter