based on Android ListViews with Dynamic Data (http://www.developerfusion.com/article/145373/android-listviews-with-dynamic-data/)