首页 > 解决方案 > 带有复选框和文本框的微调器在适配器中识别项目检查状态更改时

问题描述

我的 RecylcerViewAdapter 中有一个 Spinner,带有一个 SpinnerAdapter,因为我有 Checkbox - TextView,带有动态项。

我想在我的 RecyclerViewAdapter 中识别,当检查 SpinnerItem 时,在我的 RecyclerViewAdapter 中执行操作。视图工作正常。

我如何添加:

AdditionSpinnerAdapter adapter = new AdditionSpinnerAdapter(context, 0, categoryProductAddition.Product_Additions);
vh.AdditionSpinner.Adapter = adapter;

我的 SpinnerAdapter

namespace AndroidRegFirstApp.Adapter
{
public class AdditionSpinnerAdapter : ArrayAdapter<ProductAddition>
{
    private Context mContext;
    private List<ProductAddition> additions;
    
    public AdditionSpinnerAdapter(Context context, int resource, List<ProductAddition> objects) :base (context, resource, objects)
    {
        this.mContext = context;
        this.additions = objects;
    }

    public override View GetDropDownView(int position, View convertView, ViewGroup parent)
    {
        return this.GetCustomView(position, convertView, parent);
    }

    public override View GetView(int position, View convertView, ViewGroup parent)
    {
        return this.GetCustomView(position, convertView, parent);
    }

    public View GetCustomView(int position, View convertView, ViewGroup parent)
    {
        LayoutInflater inflater = LayoutInflater.From(mContext);
        convertView = inflater.Inflate(Resource.Layout.additionSpinnerItem, null);

        TextView AdditionText = convertView.FindViewById<TextView>(Resource.Id.additionText);
        CheckBox AdditionSelected = convertView.FindViewById<CheckBox>(Resource.Id.additionSelected);

        AdditionText.Text = additions[position].Product_Addition_Name;
        AdditionSelected.Checked = additions[position].Product_Addition_Selected;

        AdditionSelected.Tag = position;

        if (position == 0)
        {
            AdditionSelected.Visibility = ViewStates.Gone;
        }

        AdditionSelected.SetOnCheckedChangeListener(new Interface.OnCheckedListener(additions));

        return convertView;
    }
}

}

我的 OnCheckedListener:

public OnCheckedListener(List<ProductAddition> list)
    {
        this.additions = list;
    }

    public void OnCheckedChanged(CompoundButton buttonView, bool isChecked)
    {
        int position = (int)buttonView.Tag;
        this.additions[position].Product_Addition_Selected = isChecked;
    }

现在我想当 OnCheckedChanged 改变状态时,我的 RecylcerViewAdapter 中的一个方法调用。

标签: c#androidxamarincheckboxspinner

解决方案


推荐阅读