@Override public void onValueChange(NumberPicker picker, int oldVal, int newVal) { if (hero.getPurse() != null) { PurseUnit unit = (PurseUnit) picker.getTag(); if (unit != null) { hero.getPurse().setCoins(unit, newVal); } } }
/* * (non-Javadoc) * * @see android.widget.AdapterView.OnItemSelectedListener#onItemSelected(android .widget.AdapterView, * android.view.View, int, long) */ @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { if (hero.getPurse() != null) { Currency cur = (Currency) parent.getItemAtPosition(position); if (cur != hero.getPurse().getActiveCurrency()) { hero.getPurse().setActiveCurrency(cur); notifyDataSetChanged(); } } }
protected View prepareView(PurseListable item, int position, View convertView, ViewGroup parent) { PurseViewHolder holder = (PurseViewHolder) convertView.getTag(); Currency currency = item.getCurrency(); if (currency == null) { currency = hero.getPurse().getActiveCurrency(); SpinnerSimpleAdapter<Currency> currencyAdapter = new SpinnerSimpleAdapter<Currency>(getContext(), Currency.values()); holder.currencySpinner.setOnItemSelectedListener(null); holder.currencySpinner.setAdapter(currencyAdapter); holder.currencySpinner.setSelection(currencyAdapter.getPosition(currency)); holder.currencySpinner.setOnItemSelectedListener(onPurseItemSelectedListener); holder.currencySpinner.setVisibility(View.VISIBLE); holder.header.setVisibility(View.GONE); } else { holder.currencySpinner.setVisibility(View.GONE); holder.currencySpinner.setOnItemSelectedListener(null); holder.header.setVisibility(View.VISIBLE); holder.header.setText(currency.xmlName()); } List<PurseUnit> units = currency.units(); for (int i = 0; i < units.size(); i++) { holder.picker[i].setVisibility(View.VISIBLE); holder.picker[i].setTag(units.get(i)); holder.picker[i].setMinValue(0); if (i == 0) holder.picker[i].setMaxValue(999); else holder.picker[i].setMaxValue(100); holder.picker[i].setValue(hero.getPurse().getCoins(units.get(i))); holder.picker[i].setOnValueChangedListener(onPurseValueChangeListener); holder.labels[i].setVisibility(View.VISIBLE); holder.labels[i].setText(units.get(i).xmlName()); } for (int i = units.size(); i < 4; i++) { holder.picker[i].setVisibility(View.GONE); holder.picker[i].setTag(null); holder.labels[i].setVisibility(View.GONE); } return convertView; }