Spinner с пользовательским адаптером массива

Я пытаюсь заполнить счетчик из пользовательского адаптера массива. Все работает отлично, за исключением того, что когда вы нажимаете на счетчик, чтобы выбрать новое значение, он отображает длинную строку кода для каждого элемента. Тем не менее, после нажатия на длинную строку кода отображается правильное имя и выдается правильное значение, хотя.

Пример того, что он делает

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;
}

}


person L.Lieb    schedule 14.09.2018    source источник
comment
Обеспечивает ли ваш CompanyClass переопределение toString()?   -  person Ivan Todorović    schedule 14.09.2018
comment
переопределить getDropDownView() тоже   -  person pskink    schedule 14.09.2018
comment
@IvanTodorović Я включил класс в свое редактирование, спасибо   -  person L.Lieb    schedule 14.09.2018
comment
@pskink Где мне нужно переопределить getDropDownView (), можете ли вы привести пример? Спасибо   -  person L.Lieb    schedule 14.09.2018
comment
ArrayAdapter#getDropDownView или, как говорит Иван, просто переопределить метод CompanyClass#toString() (например, вернуть только Name)   -  person pskink    schedule 14.09.2018
comment
Я нашел пример того, что объяснил @pskink .com/questions/13433874/ спасибо за помощь   -  person L.Lieb    schedule 14.09.2018
comment
конечно, добро пожаловать   -  person pskink    schedule 14.09.2018


Ответы (1)


Попробуйте это.

  @Override
    public String toString() {
        return this.Name;          
    }
person Vijay Singh Chouhan    schedule 14.09.2018