Need something like this?

Then it will be like this:
public class YourActivity extends Activity { private EditText dateTime; private String[] dateTimeList; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); dateTime = (EditText) findViewById(R.id.create_datetime); setListIcon(dateTime, dateTimeList); } private void setListIcon(EditText editText, String[] list) { if (list.length <= 1) { editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); editText.setOnTouchListener(null); } else { editText.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.ic_menu_down, 0); editText.setOnTouchListener(new TouchListener()); } } private class TouchListener implements OnTouchListener { private ListPopupWindow lpw; @SuppressLint("ClickableViewAccessibility") @Override public boolean onTouch(final View v, MotionEvent event) { final int DRAWABLE_RIGHT = 2; final String[] list; if (v == dateTime) { list = dateTimeList; } else { list =null; } lpw = new ListPopupWindow(EditorActivity.this); lpw.setAdapter(new ArrayAdapter<String>(EditorActivity.this, android.R.layout.simple_list_item_1, list)); lpw.setAnchorView(v); lpw.setModal(true); lpw.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { String item = list[position]; ((EditText) v).setText(item); v.setPressed(false); lpw.dismiss(); } }); if (event.getAction() == MotionEvent.ACTION_UP) { if (event.getX() >= (v.getWidth() - ((EditText) v) .getCompoundDrawables()[DRAWABLE_RIGHT].getBounds().width())) { lpw.show(); return true; } } return false; } } }
The markup is approximate such
<EditText android:id="@+id/datetime" android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:completionThreshold="1" android:drawableEnd="@drawable/ic_menu_down" android:drawableRight="@drawable/ic_menu_down" android:ems="10" android:hint="" android:inputType="datetime" > </EditText>