重构为listView