在 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
我有一个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