У меня есть счетчик (только соответствующие части кода) ...
protected void onCreate(Bundle savedInstanceState) {
Spinner to_spinner = (Spinner) findViewById(R.id.to_spinner);
List<Unit> list = myDbHelper.getAllUnits();
SpinnerUnitAdapter tUnitAdapter tUnitAdapter = new SpinnerUnitAdapter(this, android.R.layout.simple_spinner_item, list);
to_spinner.setAdapter(tUnitAdapter);
to_spinner.setOnItemSelectedListener(onItemSelectedListenerTo);
}
с onItemSelectedListener
AdapterView.OnItemSelectedListener onItemSelectedListenerTo = new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> adapterView, View view,
int position, long id) {
// do stuff
}
@Override
public void onNothingSelected(AdapterView<?> adapter) {
}
};
Когда элемент выбран (то есть там, где написано: «делать что-нибудь»), я хотел бы установить / изменить текст выбранного элемента счетчика. (Обратите внимание, что это не то же самое, что и установка положения счетчика (с помощью setSelection ()).
Я думал сделать это с
tUnitAdapter.getView(position, ?, ?).setText("new text");
Я на правильном пути? Что ставить в качестве второго ("convertView") и третьего ("родительского") аргумента в getView. Мой адаптер спиннера выглядит так:
public class SpinnerUnitAdapter extends ArrayAdapter<Unit> {
...
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView label = new TextView(mContext);
label.setTextColor(Color.BLACK);
label.setTextSize(mContext.getResources().getDimension(R.dimen.list_row_font_size));
label.setGravity(Gravity.CENTER);
label.setText(getItem(position).getName());
return label;
}
}