2011-07-23 24 views
1

私はリストビューを持っていると私はこれにしようと試みてプログラムプログラムでリストビューの項目を強調表示する方法は?

項目を強調表示する必要があります。

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を利用します。 、

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

リストビューのビューオブジェクトを持っている場合は、あなたが欲しい、これまで何を変更することができ、フォーカスを失ったときに、ハンドルのためのコードを実装する必要があります注意してください:

+0

ノーノー、ノーonclickの、プログラム的 – NullPointerException

0

はonScroll()メソッドをオーバーライドするようにしてください。

それ以外の場合は、アダプタの実装を介してアイテムの色が変更されていると思います。 よろしくお願いします。

+0

申し訳ありませんが、私はこの答えを理解していませんでした、私はスクロールで選択したくない、私はprogramatically選択したい、たとえば: CalendarList.setSelection(2); – NullPointerException

+0

申し訳ありませんが、それについては:adaptview.getChildAt(2).setSelected(true); – NguyenDat

3

タッチモードでアイテムを強調表示するには、最初にCalendarList.requestFocusFromTouch()を呼び出す必要があります。 CalendarList.setSelection(2);

タッチモードでは、setSelection()は単独では機能しません。

関連する問題