Java源码示例:android.widget.SpinnerAdapter

示例1
private void updateSupportedLanguages(List<String> languages) {
    // We add "Default" at the beginning of the list to simulate default language.
    languages.add(0, "Default");

    SpinnerAdapter adapter = new ArrayAdapter<CharSequence>(this,
            android.R.layout.simple_spinner_item, languages.toArray(
                    new String[languages.size()]));
    mSupportedLanguageView.setAdapter(adapter);
}
 
示例2
@Test
public void shouldVerifyOnCreate_initSpinner_noResult() {
    when(environmentService.findAll()).thenReturn(Observable.just(new ArrayList<>()));
    when(gatewayService.findAll()).thenReturn(Observable.just(new ArrayList<>()));

    createWithIntent(null);

    SpinnerAdapter adapterEnvironment = spinnerDeviceEnvironment.getAdapter();
    assertFalse("should not be empty", adapterEnvironment.isEmpty());
    assertEquals("should verify first element", labelNone, adapterEnvironment.getItem(0));

    SpinnerAdapter adapterGateway = spinnerDeviceGateway.getAdapter();
    assertFalse("should not be empty", adapterGateway.isEmpty());
    assertEquals("should verify first element", labelMissingGateway, adapterGateway.getItem(0));

    verifyInitSpinnerSoundType();
}
 
示例3
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    SpinnerAdapter adapter = getAdapter();
    if (adapter != null && MeasureSpec.getMode(widthMeasureSpec) == MeasureSpec.AT_MOST) {
        View view = adapter.getView(getSelectedItemPosition(), null, this);
        if (view.getLayoutParams() == null)
            view.setLayoutParams(mDefaultLayoutParams);
        view.measure(widthMeasureSpec, heightMeasureSpec);
        int width = view.getMeasuredWidth();
        if (getBackground() != null) {
            getBackground().getPadding(mTempRect);
            width += mTempRect.left + mTempRect.right;
        }

        this.setMeasuredDimension(Math.min(width, MeasureSpec.getSize(widthMeasureSpec)), this.getMeasuredHeight());
    }

}
 
示例4
public View getDropDownView(int position, View convertView,
                            ViewGroup parent) {
    for (ListAdapter piece : getPieces()) {
        int size=piece.getCount();

        if (position<size) {
            return(((SpinnerAdapter)piece).getDropDownView(position,
                    convertView,
                    parent));
        }

        position-=size;
    }

    return(null);
}
 
示例5
public void setChoice( SolarEvents choice )
{
    if (choice != null)
    {
        this.choice = choice;
        if (spinner_scheduleMode != null)
        {
            SpinnerAdapter adapter = spinner_scheduleMode.getAdapter();
            if (adapter != null)
            {
                for (int i = 0; i < adapter.getCount(); i++)
                {
                    SolarEvents event = (SolarEvents) adapter.getItem(i);
                    if (event.equals(choice))
                    {
                        spinner_scheduleMode.setSelection(i);
                        break;
                    }
                }
            }
        }
    }
}
 
示例6
@Test
public void shouldVerifyOnCreate_initSpinner_noResult() {
    when(environmentService.findAll()).thenReturn(Observable.just(new ArrayList<>()));
    when(gatewayService.findAll()).thenReturn(Observable.just(new ArrayList<>()));

    createWithIntent(null);

    SpinnerAdapter adapterEnvironment = spinnerDeviceEnvironment.getAdapter();
    assertFalse("should not be empty", adapterEnvironment.isEmpty());
    assertEquals("should verify first element", labelNone, adapterEnvironment.getItem(0));

    SpinnerAdapter adapterGateway = spinnerDeviceGateway.getAdapter();
    assertFalse("should not be empty", adapterGateway.isEmpty());
    assertEquals("should verify first element", labelMissingGateway, adapterGateway.getItem(0));

    verifyInitSpinnerLightType();
}
 
示例7
@Test
public void shouldVerifyOnCreate_initSpinner() {
    List<EnvironmentModel> environments = Arrays.
        asList(newEnvironment(100, "env1"), newEnvironment(101, "env2"));

    List<GatewayModel> gateways = Arrays.
        asList(newGateway("uuid1", "1.1.1.1", 1), newGateway("uuid2", "2.2.2.2", 2));

    when(environmentService.findAll()).thenReturn(Observable.just(environments));
    when(gatewayService.findAll()).thenReturn(Observable.just(gateways));

    createWithIntent(null);

    SpinnerAdapter adapterEnvironment = spinnerDeviceEnvironment.getAdapter();
    assertFalse("should not be empty", adapterEnvironment.isEmpty());
    assertEquals("should verify first element", "env1", adapterEnvironment.getItem(0));
    assertEquals("should verify second element", "env2", adapterEnvironment.getItem(1));
    assertEquals("should select default", 0, spinnerDeviceEnvironment.getSelectedItemPosition());

    SpinnerAdapter adapterGateway = spinnerDeviceGateway.getAdapter();
    assertFalse("should not be empty", adapterGateway.isEmpty());
    assertEquals("should verify first element", "1.1.1.1:1", adapterGateway.getItem(0));
    assertEquals("should verify second element", "2.2.2.2:2", adapterGateway.getItem(1));
    assertEquals("should select default", 0, spinnerDeviceGateway.getSelectedItemPosition());

    verifyInitSpinnerSoundType();
}
 
示例8
/**
 * <p>Creates a new ListAdapter wrapper for the specified adapter.</p>
 *
 * @param adapter the Adapter to transform into a ListAdapter
 */
public DropDownAdapter(SpinnerAdapter adapter) {
    this.mAdapter = adapter;
    if (adapter instanceof ListAdapter) {
        this.mListAdapter = (ListAdapter) adapter;
    }
}
 
示例9
@Override
public int getNavigationItemCount() {
    switch (mActionView.getNavigationMode()) {
        case NAVIGATION_MODE_TABS:
            return mTabs.size();
        case NAVIGATION_MODE_LIST:
            SpinnerAdapter adapter = mActionView.getDropdownAdapter();
            return adapter != null ? adapter.getCount() : 0;
        default:
            return 0;
    }
}
 
示例10
private static void setSpinnerPosition(final Spinner spinner, final Object itemToSelect) {
    final SpinnerAdapter adapter = spinner.getAdapter();
    final int count = adapter.getCount();
    for (int i = 0; i < count; i++) {
        final Object item = spinner.getItemAtPosition(i);
        if (item.equals(itemToSelect)) {
            spinner.setSelection(i);
            return;
        }
    }
}
 
示例11
private static void setSpinnerPosition(final Spinner spinner, final Object itemToSelect) {
    final SpinnerAdapter adapter = spinner.getAdapter();
    final int count = adapter.getCount();
    for (int i = 0; i < count; i++) {
        final Object item = spinner.getItemAtPosition(i);
        if (item.equals(itemToSelect)) {
            spinner.setSelection(i);
            return;
        }
    }
}
 
示例12
/**
 * Load widget's configuration.
 */
private void load() {
    SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(this);
    long pid = p.getLong(LogsAppWidgetProvider.WIDGET_PLANID + mAppWidgetId, -1);
    SpinnerAdapter adapter = spinner.getAdapter();
    int l = spinner.getCount();
    for (int i = 0; i < l; i++) {
        if (adapter.getItemId(i) == pid) {
            spinner.setSelection(i);
            break;
        }
    }
    cbShowCost.setChecked(p.getBoolean(LogsAppWidgetProvider.WIDGET_COST
            + mAppWidgetId, false));
    cbShowIcon.setChecked(p.getBoolean(LogsAppWidgetProvider.WIDGET_ICON
            + mAppWidgetId, false));
    cbSmallWidget.setChecked(p.getBoolean(LogsAppWidgetProvider.WIDGET_SMALL
            + mAppWidgetId, false));
    float f = p.getFloat(LogsAppWidgetProvider.WIDGET_STATS_TEXTSIZE + mAppWidgetId, -1);
    if (f > 0f && f != DEFAULT_TEXTSIZE) {
        etStatsTextSize.setText(String.valueOf(f));
    } else {
        etStatsTextSize.setText(null);
    }
    f = p.getFloat(LogsAppWidgetProvider.WIDGET_PLAN_TEXTSIZE + mAppWidgetId, -1);
    if (f > 0f && f != DEFAULT_TEXTSIZE) {
        etPlanTextSize.setText(String.valueOf(f));
    } else {
        etPlanTextSize.setText(null);
    }
    setTextColor(p.getInt(LogsAppWidgetProvider.WIDGET_TEXTCOLOR + mAppWidgetId,
            DEFAULT_TEXTCOLOR));
    setBgColor(
            p.getInt(LogsAppWidgetProvider.WIDGET_BGCOLOR + mAppWidgetId, DEFAULT_BGCOLOR),
            false);
}
 
示例13
private static void setLayoutSpinnerPosition(final Spinner spinner, final KeyboardLayoutSetItem itemToSelect) {
    final SpinnerAdapter adapter = spinner.getAdapter();
    final int count = adapter.getCount();
    for (int i = 0; i < count; i++) {
        final KeyboardLayoutSetItem item = (KeyboardLayoutSetItem)spinner.getItemAtPosition(i);
        if (item.mLayoutName.equals(itemToSelect.mLayoutName)) {
            spinner.setSelection(i);
            return;
        }
    }
}
 
示例14
/**
 * The Adapter is used to provide the data which backs this Spinner.
 * It also provides methods to transform spinner items based on their position
 * relative to the selected item.
 * @param adapter The SpinnerAdapter to use for this Spinner
 */
@Override
public void setAdapter(SpinnerAdapter adapter) {
    if (null != mAdapter) {
        mAdapter.unregisterDataSetObserver(mDataSetObserver);
        resetList();
    }

    mAdapter = adapter;

    mOldSelectedPosition = INVALID_POSITION;
    mOldSelectedRowId = INVALID_ROW_ID;

    if (mAdapter != null) {
        mOldItemCount = mItemCount;
        mItemCount = mAdapter.getCount();
        checkFocus();

        mDataSetObserver = new AdapterDataSetObserver();
        mAdapter.registerDataSetObserver(mDataSetObserver);

        int position = mItemCount > 0 ? 0 : INVALID_POSITION;

        setSelectedPositionInt(position);
        setNextSelectedPositionInt(position);

        if (mItemCount == 0) {
            // Nothing selected
            checkSelectionChanged();
        }

    } else {
        checkFocus();
        resetList();
        // Nothing selected
        checkSelectionChanged();
    }

    requestLayout();
}
 
示例15
protected SpinnerAdapterProxy(SpinnerAdapter obj) {
    this.obj = obj;
    try {
        this.getView = SpinnerAdapter.class.getMethod(
                "getView", int.class, View.class, ViewGroup.class);
    } catch (Exception e) {
        throw new RuntimeException(e);
    }
}
 
示例16
public void setAdapter(SpinnerAdapter adapter, boolean allSelected, MultiSpinnerListener listener) {
    SpinnerAdapter oldAdapter = this.mAdapter;

    setOnClickListener(null);
    
    this.mAdapter = adapter;
    this.mListener = listener;
    this.mAllSelected = allSelected;

    if (oldAdapter != null) {
        oldAdapter.unregisterDataSetObserver(dataSetObserver);
    }

    if (mAdapter != null) {
        mAdapter.registerDataSetObserver(dataSetObserver);

        // all selected by default
        mOldSelection = new boolean[mAdapter.getCount()];
        mSelected = new boolean[mAdapter.getCount()];
        for (int i = 0; i < mSelected.length; i++) {
            mOldSelection[i] = false;
            mSelected[i] = allSelected;
        }
        
        setOnClickListener(onClickListener);
    }

    // all text on the spinner
    setText(mAllText);
}
 
示例17
@Override
public void setAdapter(SpinnerAdapter adapter) {
    if (adapter instanceof HintAdapter) {
        super.setAdapter(adapter);
    } else {
        hintAdapter = new HintAdapter(getContext(), this, adapter);
        super.setAdapter(hintAdapter);
    }
    if (hintAdapter != null)
        hintAdapter.setHint(hint);
}
 
示例18
@Override
public int getNavigationItemCount() {
    switch (mActionView.getNavigationMode()) {
        case NAVIGATION_MODE_TABS:
            return mTabs.size();
        case NAVIGATION_MODE_LIST:
            SpinnerAdapter adapter = mActionView.getDropdownAdapter();
            return adapter != null ? adapter.getCount() : 0;
        default:
            return 0;
    }
}
 
示例19
@Test
public void shouldVerifyOnCreate_initSpinner_selectedDefault() {
    List<EnvironmentModel> environments = Arrays.asList(newEnvironment(100, "env1"),
        newEnvironment(101, "env2"), newEnvironment(102, "env3"));

    List<GatewayModel> gateways = Arrays.asList(newGateway("uuid1", "1.1.1.1", 1),
        newGateway("uuid2", "2.2.2.2", 2), newGateway("uuid3", "3.3.3.3", 3));

    when(environmentService.findAll()).thenReturn(Observable.just(environments));
    when(gatewayService.findAll()).thenReturn(Observable.just(gateways));

    createActivityWithIntent(null, 101, "uuid2");

    SpinnerAdapter adapterEnvironment = spinnerDeviceEnvironment.getAdapter();
    assertFalse("should not be empty", adapterEnvironment.isEmpty());
    assertEquals("should verify 1st element", "env1", adapterEnvironment.getItem(0));
    assertEquals("should verify 2nd element", "env2", adapterEnvironment.getItem(1));
    assertEquals("should verify 3rd element", "env3", adapterEnvironment.getItem(2));
    assertEquals("should be selected", 1, spinnerDeviceEnvironment.getSelectedItemPosition());

    SpinnerAdapter adapterGateway = spinnerDeviceGateway.getAdapter();
    assertFalse("should not be empty", adapterGateway.isEmpty());
    assertEquals("should verify 1st element", "1.1.1.1:1", adapterGateway.getItem(0));
    assertEquals("should verify 2nd element", "2.2.2.2:2", adapterGateway.getItem(1));
    assertEquals("should verify 3rd element", "3.3.3.3:3", adapterGateway.getItem(2));
    assertEquals("should be selected", 1, spinnerDeviceGateway.getSelectedItemPosition());
}
 
示例20
/**
 * The Adapter is used to provide the data which backs this Spinner.
 * It also provides methods to transform spinner items based on their position
 * relative to the selected item.
 * @param adapter The SpinnerAdapter to use for this Spinner
 */
@Override
public void setAdapter(SpinnerAdapter adapter) {
    if (null != mAdapter) {
        mAdapter.unregisterDataSetObserver(mDataSetObserver);
        resetList();
    }

    mAdapter = adapter;

    mOldSelectedPosition = INVALID_POSITION;
    mOldSelectedRowId = INVALID_ROW_ID;

    if (mAdapter != null) {
        mOldItemCount = mItemCount;
        mItemCount = mAdapter.getCount();
        checkFocus();

        mDataSetObserver = new AdapterDataSetObserver();
        mAdapter.registerDataSetObserver(mDataSetObserver);

        int position = mItemCount > 0 ? 0 : INVALID_POSITION;

        setSelectedPositionInt(position);
        setNextSelectedPositionInt(position);

        if (mItemCount == 0) {
            // Nothing selected
            checkSelectionChanged();
        }

    } else {
        checkFocus();
        resetList();
        // Nothing selected
        checkSelectionChanged();
    }

    requestLayout();
}
 
示例21
@Override
public int getNavigationItemCount() {
    switch (mActionView.getNavigationMode()) {
        case NAVIGATION_MODE_TABS:
            return mTabs.size();
        case NAVIGATION_MODE_LIST:
            SpinnerAdapter adapter = mActionView.getDropdownAdapter();
            return adapter != null ? adapter.getCount() : 0;
        default:
            return 0;
    }
}
 
示例22
/**
 * <p>Creates a new ListAdapter wrapper for the specified adapter.</p>
 *
 * @param adapter the Adapter to transform into a ListAdapter
 */
public DropDownAdapter(SpinnerAdapter adapter) {
    this.mAdapter = adapter;
    if (adapter instanceof ListAdapter) {
        this.mListAdapter = (ListAdapter) adapter;
    }
}
 
示例23
@Override
public void setAdapter(SpinnerAdapter adapter) {
    super.setAdapter(adapter);

    if (mPopup != null) {
        mPopup.setAdapter(new DropDownAdapter(adapter));
    } else {
        mTempAdapter = new DropDownAdapter(adapter);
    }
}
 
示例24
@Test
public void shouldVerifyOnCreate_initSpinner() {
    List<EnvironmentModel> environments = Arrays.
        asList(newEnvironment(100, "env1"), newEnvironment(101, "env2"));

    List<GatewayModel> gateways = Arrays.
        asList(newGateway("uuid1", "1.1.1.1", 1), newGateway("uuid2", "2.2.2.2", 2));

    when(environmentService.findAll()).thenReturn(Observable.just(environments));
    when(gatewayService.findAll()).thenReturn(Observable.just(gateways));

    createWithIntent(null);

    SpinnerAdapter adapterEnvironment = spinnerDeviceEnvironment.getAdapter();
    assertFalse("should not be empty", adapterEnvironment.isEmpty());
    assertEquals("should verify first element", "env1", adapterEnvironment.getItem(0));
    assertEquals("should verify second element", "env2", adapterEnvironment.getItem(1));
    assertEquals("should select default", 0, spinnerDeviceEnvironment.getSelectedItemPosition());

    SpinnerAdapter adapterGateway = spinnerDeviceGateway.getAdapter();
    assertFalse("should not be empty", adapterGateway.isEmpty());
    assertEquals("should verify first element", "1.1.1.1:1", adapterGateway.getItem(0));
    assertEquals("should verify second element", "2.2.2.2:2", adapterGateway.getItem(1));
    assertEquals("should select default", 0, spinnerDeviceGateway.getSelectedItemPosition());

    verifyInitSpinnerAutomationType();
}
 
示例25
private static void setSubtypeSpinnerPosition(final Spinner spinner, final SubtypeLocaleItem itemToSelect) {
    final SpinnerAdapter adapter = spinner.getAdapter();
    final int count = adapter.getCount();
    for (int i = 0; i < count; i++) {
        final SubtypeLocaleItem item = (SubtypeLocaleItem)spinner.getItemAtPosition(i);
        if (item.mLocaleString.equals(itemToSelect.mLocaleString)) {
            spinner.setSelection(i);
            return;
        }
    }
}
 
示例26
private static void setSpinnerPosition(final Spinner spinner, final Object itemToSelect) {
    final SpinnerAdapter adapter = spinner.getAdapter();
    final int count = adapter.getCount();
    for (int i = 0; i < count; i++) {
        final Object item = spinner.getItemAtPosition(i);
        if (item.equals(itemToSelect)) {
            spinner.setSelection(i);
            return;
        }
    }
}
 
示例27
private void editRecur(Recur recur) {
    editStartDate(recur.startDate);
    RecurInterval interval = recur.interval;
    SpinnerAdapter adapter = sInterval.getAdapter();
    int count = adapter.getCount();
    for (int i = 0; i < count; i++) {
        SpinnerItem item = (SpinnerItem) adapter.getItem(i);
        if (interval == RecurInterval.valueOf(item.value)) {
            sInterval.setSelection(i);
            break;
        }
    }
    View v = selectInterval(interval);
    switch (interval) {
        case EVERY_X_DAY:
            editEveryXDay(v, recur);
            break;
        case WEEKLY:
            editWeekly(v, recur);
            break;
        case SEMI_MONTHLY:
            editSemiMonthly(v, recur);
            break;
    }
    RecurPeriod period = recur.period;
    sPeriod.setSelection(period.ordinal());
    v = selectPeriod(period);
    switch (period) {
        case EXACTLY_TIMES:
            editExactlyTimes(v, recur.periodParam);
            break;
        case STOPS_ON_DATE:
            editStopsOnDate(v, recur.periodParam);
            break;
    }
}
 
示例28
private SpinnerAdapter createCurrencyAdapter(List<Currency> currencies) {
    ArrayAdapter<Currency> a = new ArrayAdapter<Currency>(this, android.R.layout.simple_spinner_item, currencies) {
        @Override
        public long getItemId(int position) {
            return getItem(position).id;
        }
    };
    a.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    return a;
}
 
示例29
@Test
public void shouldVerifyOnCreate_initSpinnerEnvironment() {
    List<EnvironmentModel> environments = Arrays.
        asList(newEnvironment(100, "env1"), newEnvironment(101, "env2"));

    when(environmentService.findAll()).thenReturn(Observable.just(environments));

    createWithIntent(null);

    SpinnerAdapter adapterEnvironment = spinnerDeviceEnvironment.getAdapter();
    assertFalse("should not be empty", adapterEnvironment.isEmpty());
    assertEquals("should verify first element", "env1", adapterEnvironment.getItem(0));
    assertEquals("should verify second element", "env2", adapterEnvironment.getItem(1));
    assertEquals("should select default", 0, spinnerDeviceEnvironment.getSelectedItemPosition());
}
 
示例30
private void setSpinnerSelection(Spinner spinner, int position) {
    SpinnerAdapter adapter = spinner.getAdapter();
    if (adapter != null) {
        final int count = adapter.getCount();
        if (count > 0 && position < count) {
            spinner.setSelection(position, true);
        }
    }
}