具有自定义数组适配器的Spinner

问题描述 投票:0回答:1

我试图从自定义数组适配器填充微调器。一切都很完美,除非您单击微调器以选择新值时,它会为每个项目显示一长串代码。但是,单击长行代码后会显示正确的名称并提供正确的值。

它的作用的例子

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

}

android class spinner android-arrayadapter custom-arrayadapter
1个回答
0
投票

试试吧。

  @Override
    public String toString() {
        return this.Name;          
    }
© www.soinside.com 2019 - 2024. All rights reserved.