0

早上好,我实现了一个listView隐藏了一些信息的按钮和一个按钮,但是按钮的单击事件有问题,我使用的是 MonoDroid,我实现了界面OnClickListener (),我的问题是,如果我设置button.setOnclickListener (new MyClassClick ())ListView适配器内部,它每次ListView滚动都会创建一个对象,并且不能重用之前创建的对象,可以检查按钮是否已经有一个链接到他的动作?输入一个GetOnclickListener ()

public override View GetView(int position, View convertView, ViewGroup parent){

        var item = produtos[position];
        ViewHolderProdutos viewHolder;
        var view = convertView;
        if (view == null)
        {
            view = context.LayoutInflater.Inflate(Resource.Layout.ProdutoListItem,parent, false);
            viewHolder = new ViewHolder();
            viewHolder.Inicializa(view);
            view.Tag = viewHolder;
        }
        ProductsBase prod = (ProductsBase) productList[position];
        viewHolder = (ViewHolder)view.Tag;
        viewHolder.Bind(prod);
        var btnIncluir = view.FindViewById<Button>(Resource.Id.btnIncluir);
        //Evento Click do Botão Incluir
        btnIncluir.SetOnClickListener(new OnClickButton(productList[position].pro_codigo.ToString(), parent.Context));
        return view;

}

对不起,如果文字混乱,我的英语不好

4

1 回答 1

0

在您Adapter的 sGetView方法中,您只需要设置OnClickListenerwhen convertViewis null

public override View GetView(int position, View convertView, ViewGroup parent)
{
    var view = convertView;

    if (null == view)
    {
        //1. inflate or create your views here
        //2. Set OnClickListeners
    }

    //populate views with Adapter item data
}
于 2013-02-04T09:00:13.543 回答