SelectedItem of Spinner always null

久未见 提交于 2020-01-05 08:49:09

问题


I created custom array adapter for my spinner control but when clicking an item from the list it's not selected. Here my code:

public class CustomArrayAdapter : BaseAdapter
{
    readonly LayoutInflater inflater;
    List<string> items;

    public CustomArrayAdapter(Context context, List<string> items)
    {
        this.inflater = LayoutInflater.FromContext(context);
        this.items = items;
    }

    public override int Count
    {
        get { return items.Count; }
    }

    public override Object GetItem(int position)
    {
        return null;
    }

    public override long GetItemId(int position)
    {
        return position;
    }

    public override View GetView(int position, View convertView, ViewGroup parent)
    {
        var view = convertView ?? inflater.Inflate(Resource.Layout.SpinnerItem, parent, false);
        var item = items[position];
        view.FindViewById<TextView>(Resource.Id.spinnerItem).Text = item;
        return view;
    }
}

And the spinner layout:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/spinnerItem"
android:layout_width="fill_parent"
android:layout_height="50dp"
android:textColor="@color/background_color"
android:textSize="25dp"
android:gravity="center_vertical"
android:textAlignment="center" />

That's how I use the adapter:

CustomArrayAdapter adapter = new CustomArrayAdapter(this, spinnerItems.ToList());
spinnerLoginName.Adapter = adapter;

回答1:


You need to return the value from the list inside GetItem method instead of null as

public override Object GetItem(int position)
    {
        return items.get(position);
    }


来源:https://stackoverflow.com/questions/49301920/selecteditem-of-spinner-always-null

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!