2017-02-14 69 views
0

我有一個listview,我想設置onCreate第一個項目的背景顏色。我試過這個:在onCreate設置ListView項背景

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。我怎樣才能做到這一點?

回答

0

由於您已擁有自己的ListAdapterDrawerListAdapter)類,因此您應該可以覆蓋其中的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
+0

你能告訴我,我應該在那裏粘貼確切的代碼? –

+0

更新了評論。假設它擴展了'ListAdapter'或'ArrayAdapter' – Syex

+0

謝謝。但後來我怎麼才能將它改回透明?因爲我試圖在onItemClick上這樣做,但它不起作用。 –