Я пытаюсь заполнить счетчик из пользовательского адаптера массива. Все работает отлично, за исключением того, что когда вы нажимаете на счетчик, чтобы выбрать новое значение, он отображает длинную строку кода для каждого элемента. Тем не менее, после нажатия на длинную строку кода отображается правильное имя и выдается правильное значение, хотя.
Пример того, что он делает
https://i.stack.imgur.com/AhUqw.png
Пользовательский адаптер массива
private void populateCompanyList()
{
ArrayAdapter<CompanyClass> Adapter = new OnlyListAdapter();
Company.setAdapter(Adapter);
}
private class OnlyListAdapter extends ArrayAdapter<CompanyClass>
{
public OnlyListAdapter() {
super(getActivity(), R.layout.spinner_item, listCompany);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
//Make sure we have a view to work with
View itemView = convertView;
if (itemView == null)
itemView = getActivity().getLayoutInflater().inflate(R.layout.spinner_item, parent, false);
CompanyClass currentCompany = listCompany.get(position);
TextView Name = (TextView) itemView.findViewById(R.id.txtName);
Name.setText(currentCompany.getName());
Toast.makeText(getActivity(), currentCompany.getName(), Toast.LENGTH_LONG).show();
return itemView;
}
}
открытый класс CompanyClass {
String ID;
String Name;
public CompanyClass(String ID, String Name)
{
this.ID=ID;
this.Name=Name;
}
public String getID() {
return ID;
}
public String getName() {
return Name;
}
}
CompanyClass
переопределениеtoString()
? - person Ivan Todorović   schedule 14.09.2018getDropDownView()
тоже - person pskink   schedule 14.09.2018ArrayAdapter#getDropDownView
или, как говорит Иван, просто переопределить методCompanyClass#toString()
(например, вернуть толькоName
) - person pskink   schedule 14.09.2018