public TiUINativePicker(final TiViewProxy proxy, Activity activity) {
    this(proxy);

    int spinnerId;
    try {
      spinnerId = TiRHelper.getResource("layout.titanium_ui_spinner");
    } catch (ResourceNotFoundException e) {
      if (Log.isDebugModeEnabled()) {
        Log.e(TAG, "XML resources could not be found!!!");
      }
      return;
    }
    Spinner spinner = (Spinner) activity.getLayoutInflater().inflate(spinnerId, null);

    spinner.addOnLayoutChangeListener(
        new View.OnLayoutChangeListener() {
          @Override
          public void onLayoutChange(
              View v,
              int left,
              int top,
              int right,
              int bottom,
              int oldLeft,
              int oldTop,
              int oldRight,
              int oldBottom) {
            TiUIHelper.firePostLayoutEvent(proxy);
          }
        });

    spinner.setOnTouchListener(
        new View.OnTouchListener() {
          @Override
          public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_UP) {
              KrollDict data = new KrollDict();
              data.put(TiC.PROPERTY_X, event.getX());
              data.put(TiC.PROPERTY_Y, event.getY());
              fireEvent(TiC.EVENT_CLICK, data);
            }
            return false;
          }
        });

    setNativeView(spinner);
    refreshNativeView();
    preselectRows();

    spinner.setOnItemSelectedListener(this);
  }