2011-07-23 87 views
1

我有一個列表視圖,我需要突出一個項目編程如何以編程方式突出顯示listview項目?

我tryed這一點:

CalendarList = (ListView) findViewById(R.id.CalendarList); 
CalendarList.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, MyApplication.roundMatches(CalendarPicker.getValue()))); 

CalendarList.setSelection(2); 

但爲setSelection沒有作品:S

回答

2

最後這些解決方案的工作,我這樣做是通過不同的方式,改變所選項目的文本的顏色

1

你想在點擊高亮?

然後覆蓋onItemClickedListener()

,做這裏面:

position = position - listview.getFirstVisibleItem(); 
listview.getChildAt(position).requestFocus(); 

或使用<selector

+0

不,不,不的onclick,編程 – NullPointerException

0

嘗試重寫onScroll()方法:

@Override 
public void onScroll(AbsListView listView, int firstVisibleItem, 
     int visibleItemCount, int totalItemCount) { 
    /* Get view of item in list */ 
    View view = listView.getSelectedView(); 
    } 

當有視圖列表視圖的對象,你可以改變你什麼都想要,注意到,當失去焦點,您必須對手柄執行代碼。

否則,我認爲有另一種解決方案是通過Adapter的工具改變項目的顏色。 Regards,

+0

抱歉,但我不明白這個答案,我不想用滾動來選擇,我想以編程方式選擇,例如: CalendarList.setSelection(2); – NullPointerException

+0

對不起,如何:adaptview.getChildAt(2).setSelected(true); – NguyenDat

3

要突出顯示觸摸模式下的項目,您必須先調用CalendarList.requestFocusFromTouch();然後CalendarList.setSelection(2);

在觸摸模式下,setSelection()不起作用。

相關問題