【发布时间】:2015-11-12 10:10:09
【问题描述】:
我有一个微调器(仅代码的相关部分)...
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");
我在正确的轨道上吗?在 getView 中放置什么作为第二个(“convertView”)和第三个(“父”)参数。我的微调器适配器如下所示:
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;
}
}
【问题讨论】:
标签: android android-spinner settext onitemselectedlistener