微调控制项的SelectedItem始终为空 [英] SelectedItem of Spinner always null

查看:29
本文介绍了微调控制项的SelectedItem始终为空的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我为我的微调控件创建了自定义数组适配器,但是当从列表中单击一项时,它没有被选中。以下是我的代码:

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

和微调控件布局:

<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" />

这就是我使用适配器的方式:

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

推荐答案

您需要从GetItem方法内部的列表中返回值,而不是将null作为

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

这篇关于微调控制项的SelectedItem始终为空的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆