more correct setAdapter handling