android.R.layout.simple_dropdown_item_1line instead of android.R.layout.simple_list_item_2 will fix the first issue as you had mentioned.
For the second issue, I have had issues in the past getting the dropdowns to theme correctly. Especially when using dark with light action bar. Sometimes you have to use the themed context instead. If its in the actionbar, try using
new ArrayAdapter<CharSequence>(getActionBar().getThemedContext()
,android.R.layout.simple_spinner_item, substances );
Otherwise I would suggest you create your own layout for the dropdown item and replace android.R.layout.simple_dropdown_item_1line with the one your created.