listView now support init with type