1

我搜索了這一點,我能準確地找到我所需要的答案...變化TextView的顏色和文字在getView(...)

我有抽屜式導航ListView,我當一個項目在列表中點擊,我想能夠從中獲得TextView,並更改它的背景顏色,文本顏色並使文本變爲粗體。

我試着通過以下操作獲取TextView;

adapter_navList = new ArrayAdapter<String>(this, R.layout.listview_navdrawer, drawerItems) { 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View view = super.getView(position, convertView, parent); 

     TextView item = (TextView) lv_navList.getItemAtPosition(i); 
     // Code to set the background, formatting, colour, etc. 

     return view; 
    } 
}; 
lv_navList.setAdapter(adapter_navList); 

不過,我不斷收到以下錯誤:

java.lang.ClassCastException: java.lang.String cannot be cast to android.widget.TextView

我將如何解決這個問題?

+0

請使用 TextView的項目=(TextView的)adapter_navList.getItemAtPosition(I)。 –

+0

@JayShah這不起作用 - 無法解析方法'getItemAtPosition(int)'。 –

+0

好的,你已經設置arrayadapter到你的listview.So你的視圖已經是textview。 您可以像下面一樣使用它:: ((TextView)view).setTypeface(font); ((TextView)view).setTextColor(Color.BLUE); 希望這對你有所幫助.. –

回答

3

您可以使用以下方法:

adapter_navList = new ArrayAdapter<String>(this, R.layout.listview_navdrawer, drawerItems) { 
    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View view = super.getView(position, convertView, parent); 

     TextView mytextview=(TextView)view; 
     mytextview.setTextColor(Color.BLUE); 
     mytextview.setTextSize(14); 
     // Other code you may want to add 

     return view; 
    } 
}; 
lv_navList.setAdapter(adapter_navList);