Use rowId as key for each item in DB.

1. Some UI bugfix.
2. Set adapter to list first after they being created, so that all
change will call notifyDataChanged.
3. Init an list in adapter when "add item" first be called.
4. Move some unneccessary methods to base adapter.