在 onCreate 设置 ListView 项目背景

Set ListView item background at onCreate

我有一个listview,我想在onCreate时设置第一项的背景色。我试过这个:

    mDrawerList = (ListView) findViewById(R.id.navList);
    DrawerListAdapter adapter = new DrawerListAdapter(this, mNavItems);
    mDrawerList.setAdapter(adapter);
    View view = mDrawerList.getChildAt(1);
    view.setBackgroundColor((parseColor("#008CC3")));

但是它给了NPE。我该怎么做?

由于您已经拥有自己的 ListAdapter (DrawerListAdapter) class,因此您应该能够覆盖其中的 getView(int position, View convertView, ViewGroup parent) 方法。在那里你可以简单地做

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view = super.getView(position, convertView, parent);
    if (position == 0) {
        view.setBackgroundColor(Color.parseColor("#008CC3"));
    }
    return view;
}

其他提示:

  • 您想获得第一个项目,但正在调用 getChildAt(1),这实际上会给您 第二个 个项目。
  • ListViews 以某种方式被弃用,您应该查看 RecyclerViews