3

我在访问 ListView 中的复选框时遇到问题。我正在尝试在创建每个视图时设置复选框。

我做了一个自定义适配器来实现这个功能:

        public override View GetView(int position, View convertView, ViewGroup parent)
    {
        View view = convertView;
        if (view == null)
            view = context.LayoutInflater.Inflate(Android.Resource.Layout.SimpleListItemChecked, null);
        view.FindViewById<TextView>(Android.Resource.Id.Text1).Text = items[position]._fName + items[position]._lName;

        // This seems to return null.. I'm probably accessing it the wrong way.
        view.FindViewById<CheckBox>(Android.Resource.Id.Checkbox).Checked = items[position]._Enabled;
        return view;
    }

问题是,作为注释状态,程序抛出 System.NullReferenceException。关键是我不知道如何访问该复选框。

任何帮助都将不胜感激。

4

1 回答 1

2

我不知道这是否是最好的方法,但它对我有用:考虑到我们知道列表将包含一个文本和一个复选框,我直接投到 CheckedTextView..

        public override View GetView(int position, View convertView, ViewGroup parent)
    {
        var view = convertView as CheckedTextView;
        if (view == null)
            view = context.LayoutInflater.Inflate(Android.Resource.Layout.SimpleListItemChecked, null) as CheckedTextView;
        view.SetText(items[position]._fName + items[position]._lName, TextView.BufferType.Normal);
        view.Checked = items[position]._Enabled;

        return view;
    }

这可能不是实现这一目标的正确/最佳方式,但至少它有效..

于 2013-01-31T16:23:00.247 回答