private void showPopup(){ if (!mPopup.isShowing()){ mPopup.show(); final ListView lv = mPopup.getListView(); if(lv != null){ if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) lv.setChoiceMode(ListView.CHOICE_MODE_SINGLE); lv.setSelection(getSelectedItemPosition()); if(mArrowDrawable != null && mArrowAnimSwitchMode) lv.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() { @Override public boolean onPreDraw() { lv.getViewTreeObserver().removeOnPreDrawListener(this); mArrowDrawable.setMode(ArrowDrawable.MODE_UP, true); return true; } }); } } }