@Override
 public void propertyChanged(String key, Object oldValue, Object newValue, KrollProxy proxy) {
   if (key.equals(TiC.PROPERTY_FONT)) {
     Spinner spinner = (Spinner) nativeView;
     TiSpinnerAdapter<TiViewProxy> adapter = (TiSpinnerAdapter<TiViewProxy>) spinner.getAdapter();
     adapter.setFontProperties(proxy.getProperties());
     adapter.notifyDataSetChanged();
   } else {
     super.propertyChanged(key, oldValue, newValue, proxy);
   }
 }
  @Override
  protected void refreshNativeView() {
    // Don't allow change events here
    suppressChangeEvent = true;
    Spinner spinner = (Spinner) nativeView;
    if (spinner == null) {
      return;
    }
    try {
      spinner.setOnItemSelectedListener(null);
      int rememberSelectedRow = getSelectedRowIndex(0);
      // Just one column - the first column - for now.
      // Maybe someday we'll support multiple columns.
      PickerColumnProxy column = getPickerProxy().getFirstColumn(false);
      if (column == null) {
        return;
      }
      TiViewProxy[] rowArray = column.getChildren();
      if (rowArray == null || rowArray.length == 0) {
        return;
      }
      ArrayList<TiViewProxy> rows = new ArrayList<TiViewProxy>(Arrays.asList(rowArray));
      // At the moment we're using the simple spinner layouts provided
      // in android because we're only supporting a piece of text, which
      // is fetched via PickerRowProxy.toString(). If we allow
      // anything beyond a string, we'll have to implement our own
      // layouts (maybe our own Adapter too.)
      TiSpinnerAdapter<TiViewProxy> adapter =
          new TiSpinnerAdapter<TiViewProxy>(
              spinner.getContext(), android.R.layout.simple_spinner_item, rows);
      adapter.setFontProperties(proxy.getProperties());
      adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      spinner.setAdapter(adapter);
      if (rememberSelectedRow >= 0) {
        selectRow(0, rememberSelectedRow, false);
      }

    } catch (Throwable t) {
      Log.e(TAG, "Unable to refresh native spinner control: " + t.getMessage(), t);
    } finally {
      suppressChangeEvent = false;
      spinner.setOnItemSelectedListener(this);
    }
  }