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);
}
}
}