【问题标题】:ListView with Mono Android - Setting checkbox带有 Mono Android 的 ListView - 设置复选框
【发布时间】:2013-02-01 00:23:00
【问题描述】:

我在访问 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。 关键是我不知道如何访问该复选框。

感谢任何帮助。

【问题讨论】:

  • 请发布您的完整代码。
  • 感谢回复,我已经解决了这个问题(前几天忘记回复了)。

标签: android listview checkbox mono


【解决方案1】:

我不知道这是否是最好的方法,但它对我有用: 考虑到我们知道列表将包含一个文本和一个复选框,我直接将其转换为 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;
    }

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

【讨论】:

    猜你喜欢
    • 2011-09-15
    • 2012-12-11
    • 1970-01-01
    • 1970-01-01
    • 2017-07-09
    • 2016-02-03
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    相关资源
    最近更新 更多