使用按钮为listview中的textview赋值 [英] Give value to textview inside listview with button

查看:102
本文介绍了使用按钮为listview中的textview赋值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在android上有listview,我想在点击按钮时给textview值+1。

这是我的适配器代码:



Hi, i have listview on android,i want to give textview value +1 when i click the button.
here's my adapter code:

namespace fnb.Adapters
{
    class listMenuAdapters : BaseAdapter<listMenuModels>, IFilterable
    {
        private Context mContext;
        private List<listMenuModels> mItems;
        private List<listMenuModels> _originalData;
        private TextView txtNamaMenu;
        private TextView txtHargaMenu;
        private ImageView imageMenu;
        private TextView txtKodeMenu;
        private TextView txtQty;
        private ImageButton butPlusMenu;
        private ImageButton butMinMenu;

        public listMenuAdapters(Context context, List<listMenuModels> items)
        {
            this.mItems = items;
            this.mContext = context;

            Filter = new MenuFilter(this);
        }

        public override int Count
        {
            get
            {
                return mItems.Count;
            }
        }

        public override listMenuModels this[int position]
        {
            get
            {
                return mItems[position];
            }
        }
        

        public override long GetItemId(int position)
        {
            return position;
        }

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

            if (row == null)
            {
                row = LayoutInflater.From(mContext).Inflate(Resource.Layout.lvListMenuFnb_rowItem, null, false);
            }

            txtNamaMenu = row.FindViewById<TextView>(Resource.Id.textMenuName);
            txtNamaMenu.Text = mItems[position].namaMenu;
            txtHargaMenu = row.FindViewById<TextView>(Resource.Id.textMenuPrice);
            txtHargaMenu.Text = mItems[position].hargaJual.ToString("N0");
            txtKodeMenu = row.FindViewById<TextView>(Resource.Id.textKodeMenu);
            txtKodeMenu.Text = mItems[position].kodeMenu;
            butPlusMenu = row.FindViewById<ImageButton>(Resource.Id.ibPlusMenuFnb);
            butPlusMenu.Focusable = false;
            butPlusMenu.FocusableInTouchMode = false;
            //butPlusMenu.SetTag(position);

            butMinMenu = row.FindViewById<ImageButton>(Resource.Id.ibMinusMenuFnb);
            butMinMenu.FocusableInTouchMode = false;
            butMinMenu.Focusable = false;

            txtQty = row.FindViewById<TextView>(Resource.Id.txtQtyMenuFnb);
            //txtQty.Text = "0";

            txtKodeMenu.Visibility = ViewStates.Invisible;

            imageMenu = row.FindViewById<ImageView>(Resource.Id.imageMenu);
            imageMenu.Focusable = false;
            imageMenu.FocusableInTouchMode = false;

            if (mItems[position].pic != null)
            {
                imageMenu.SetImageBitmap(bytesToBitmap(mItems[position].pic));
            }
            else
            {
                imageMenu.SetImageResource(Resource.Drawable.noimage);
            }

            row.SetBackgroundColor(Color.Beige);

            return row;
        }

        public static Bitmap bytesToBitmap(byte[] imageBytes)
        {
            Bitmap bitmap = BitmapFactory.DecodeByteArray(imageBytes, 0, imageBytes.Length);
            return bitmap;
        }

        public Filter Filter { get; private set; }

        private class MenuFilter : Filter
        {
            private listMenuAdapters menuAdapter;

            public MenuFilter(listMenuAdapters menuAdapter)
            {
                this.menuAdapter = menuAdapter;
            }

            protected override FilterResults PerformFiltering(ICharSequence constraint)
            {
                var returnObj = new FilterResults();
                var results = new List<listMenuModels>();

                if (menuAdapter._originalData == null)
                    menuAdapter._originalData = menuAdapter.mItems;

                if (constraint == null) return returnObj;

                if (menuAdapter._originalData != null && menuAdapter._originalData.Any())
                {
                    results.AddRange(
                        menuAdapter._originalData.Where(
                            menu => menu.namaMenu.ToLower().Contains(constraint.ToString())));
                }

                returnObj.Values = FromArray(results.ToArray());

                return returnObj;
            }

            protected override void PublishResults(ICharSequence constraint, FilterResults results)
            {
                var res = new List<listMenuModels>(results.Values.ToArray<listMenuModels>());
                menuAdapter.mItems = res;
                menuAdapter.NotifyDataSetChanged();
            }
        }
    }





我尝试了什么:



我试图浏览代码,但找不到



What I have tried:

I have tried to browse for the code, but cannot found

推荐答案

适配器代码主要是无关紧要(对于你提出的问题)。



响应按钮点击的代码是什么样的?在其中,您将要对 listMenuModels 的成员之一进行更改: namaMenu hargaJual ,或 kodeMenu 。适配器代码将使用新值更新 TextView 控件。
The adapter code is mostly irrelevant (for the question you are asking).

What does the code look like that responds to the button click? In it, you'll want to make a change to one of the members of listMenuModels: namaMenu, hargaJual, or kodeMenu. The adapter code will update the TextView control with the new value.


这篇关于使用按钮为listview中的textview赋值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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