In displaytext, why are you inserting columns everytime? Why are you passing leauge by value rather than as a const reference? Also resToken is not used.

the former text disappears and the latest string only present.
Correct! This is what your code does. It always inserts the item at index 0. If you want to display more than one item in the listview then you need to increment the index value used each time. Alternatively, you can use a very large index number in which case the item is inserted at the end of the list and nItem is then the index at which the value was inserted.

Code:
nItem = ctlRightView.InsertItem(0,  league);
Try this

Code:
nItem = ctlRightView.InsertItem(9999,  league);