refactor setOnItemClickListener