@Override public void setSelection(int position) { if (position == getSelectedItemPosition()) { return; } if (mVariableField == null) { return; } int type = ((VariableViewAdapter) getAdapter()).getVariableAction(position); switch (type) { case VariableViewAdapter.ACTION_SELECT_VARIABLE: super.setSelection(position); if (mVariableField != null) { String varName = getAdapter().getItem(position).toString(); mVariableField.setVariable(varName); } break; case VariableViewAdapter.ACTION_RENAME_VARIABLE: if (mCallback != null) { mCallback.onVariableRequest( VariableRequestCallback.REQUEST_RENAME, mVariableField.getVariable()); } break; case VariableViewAdapter.ACTION_DELETE_VARIABLE: if (mCallback != null) { mCallback.onVariableRequest( VariableRequestCallback.REQUEST_DELETE, mVariableField.getVariable()); } break; } }