У меня есть пользовательский ArrayAdapter для представления объектов в элементе управления счетчиком, я могу загружать свои элементы list и показать его для выбора, но когда происходит фактический выбор, счетчик ничего не показывает.
Код действия:
public MetroData metroData;
private Spinner spinner;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
metroData = new MetroData();
spinner = (Spinner) findViewById(R.id.spinner1);
StopArrayAdapter dAdapter = new StopArrayAdapter(this, metroData.Stops);
spinner.setAdapter(dAdapter);
}
StopArrayAdapter:
public class StopArrayAdapter extends ArrayAdapter<MetroStop> {
private List<MetroStop> items;
private Activity activity;
public StopArrayAdapter(Activity activity, List<MetroStop> items) {
super(activity, android.R.layout.simple_list_item_1, items);
this.items = items;
this.activity = activity;
}
@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
TextView v = (TextView) super.getView(position, convertView, parent);
if (v == null) {
v = new TextView(activity);
}
v.setTextColor(Color.BLACK);
v.setText(items.get(position).getName());
return v;
}
@Override
public MetroStop getItem(int position) {
return items.get(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater inflater = activity.getLayoutInflater();
v = inflater.inflate(R.layout.view_spinner_item, null);
}
TextView lbl = (TextView) v.findViewById(R.id.text1);
lbl.setTextColor(Color.BLACK);
lbl.setText(items.get(position).getName());
return convertView;
}
}
Шаблон элемента представления счетчика:
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/text1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:textColor="#222"/>
Есть идеи, почему представление выбранного элемента не работает? Кстати, я также пробовал это с обычным ArrayAdapter с тем же результатом.
ОбновлениеКажется, что представление генерируется, но глядя на средство просмотра иерархии, представление не отображается, Измерено/Макет/Рисование = н/д.