To display the first letter of the currently displayed list item on the screen for users to search in the list.
In this example, a text box is displayed in the center of the screen. The TextView is dynamically added to the default window of ListActivity in WindowManager. like Android services, WindowManager also obtains service objects through getSystemService:
[Java]
MWindowManager = (WindowManager) getSystemService (Context. WINDOW_SERVICE );
MWindowManager = (WindowManager) getSystemService (Context. WINDOW_SERVICE );
Add Scroll event processing for ListView:
[Java]
GetListView (). setOnScrollListener (this );
Public void onScroll (AbsListView view, int firstVisibleItem,
Int visibleItemCount, int totalItemCount ){
Int lastItem = firstVisibleItem + visibleItemCount-1;
If (mReady ){
Char firstLetter = mStrings [firstVisibleItem]. charAt (0 );
If (! MShowing & firstLetter! = MPrevLetter ){
MShowing = true;
MDialogText. setVisibility (View. VISIBLE );
}
MDialogText. setText (Character) firstLetter). toString ());
MHandler. removeCallbacks (mRemoveWindow );
MHandler. postDelayed (mRemoveWindow, 3000 );
MPrevLetter = firstLetter;
}
}
GetListView (). setOnScrollListener (this );
Public void onScroll (AbsListView view, int firstVisibleItem,
Int visibleItemCount, int totalItemCount ){
Int lastItem = firstVisibleItem + visibleItemCount-1;
If (mReady ){
Char firstLetter = mStrings [firstVisibleItem]. charAt (0 );
If (! MShowing & firstLetter! = MPrevLetter ){
MShowing = true;
MDialogText. setVisibility (View. VISIBLE );
}
MDialogText. setText (Character) firstLetter). toString ());
MHandler. removeCallbacks (mRemoveWindow );
MHandler. postDelayed (mRemoveWindow, 3000 );
MPrevLetter = firstLetter;
}
}
MHandler is used to send messages in the UI thread. The usage of Android Handler is described.