Как установить кнопку ActionBar enabled=true из ListView_ItemClick?

У меня есть этот код:

public override bool OnCreateOptionsMenu(IMenu menu)
        {
            MenuInflater.Inflate(Resource.Drawable.actionbar_produtos, menu);
            menu.FindItem (Resource.Id.edita).SetEnabled (false);
            menu.FindItem (Resource.Id.apaga).SetEnabled (false);
            return base.OnCreateOptionsMenu(menu);
        }

        public override bool OnOptionsItemSelected(IMenuItem item)
        {

            switch (item.ItemId)
            {

            case Resource.Id.search:
                //Search icon has been clicked

                mSearch.Focusable=false;
                mSearch.Visibility = ViewStates.Visible;
                if (mIsAnimating)
                {
                    return true;
                }

                if (!mAnimatedDown)
                {
                    //Listview is up
                    MyAnimation anim = new MyAnimation(ListViewProdutos, ListViewProdutos.Height - mSearch.Height);
                    anim.Duration = 500;
                    ListViewProdutos.StartAnimation(anim);
                    anim.AnimationStart += anim_AnimationStartDown;
                    anim.AnimationEnd += anim_AnimationEndDown;
                    mContainer.Animate().TranslationYBy(mSearch.Height).SetDuration(500).Start();


                }

                else
                {
                    //Listview is down
                    MyAnimation anim = new MyAnimation(ListViewProdutos, ListViewProdutos.Height + mSearch.Height);
                    anim.Duration = 500;
                    ListViewProdutos.StartAnimation(anim);
                    anim.AnimationStart += anim_AnimationStartUp;
                    anim.AnimationEnd += anim_AnimationEndUp;
                    mContainer.Animate().TranslationYBy(-mSearch.Height).SetDuration(500).Start();


                }

                mAnimatedDown = !mAnimatedDown;
                return true;

            case Resource.Id.adiciona:

                FragmentTransaction transaction = FragmentManager.BeginTransaction();

                dialog_Adicionar_produto dialog_adicionar = new dialog_Adicionar_produto ();
                dialog_adicionar.Show (transaction, "dialog fragment");

                dialog_adicionar.mOnAdicionarComplete += dialog_adicionar_mOnAdicionarComplete;



                return true;

            case Resource.Id.edita:

                FragmentTransaction transaction2 = FragmentManager.BeginTransaction ();




                dialog_Editar_produto dialog_editar = new dialog_Editar_produto (array);
                dialog_editar.Show (transaction2, "dialog fragment");

                dialog_editar.mOnEditarComplete += dialog_editar_mOnAdicionarComplete;



                return true;

            case Resource.Id.apaga:


                mItems.RemoveAt (index );
                adapter = new MyListViewAdapter_produtos (this,Resource.Layout.listview_row_produtos, mItems);
                ListViewProdutos.Adapter = adapter;


                return true;

            default:
                return base.OnOptionsItemSelected(item);
            }
        }

И я хотел бы, чтобы, когда пользователь нажимает на элемент (в списке), эти «апага» и «редактирование» становились включенными = истинными.

вот это listview_ItemCLick:

protected void ListViewProdutos_ItemClick (object sender, AdapterView.ItemClickEventArgs e)
        {
            index = e.Position;
            adapter.setSelectedIndex(e.Position);

            array [0] = mItems [e.Position].Nome;
            array [1] = Convert.ToString(mItems [e.Position].Preco);
            array [2] = mItems [e.Position].Unidade;
            array [3] = mItems [e.Position].Categoria;

            ListViewProdutos.Adapter = adapter;


        }

Как я могу получить доступ к пунктам меню отсюда?

Вот изображение макета:

введите здесь описание изображения


person Rui Emanuel Quaresma    schedule 27.04.2015    source источник
comment
@ Android777, не могли бы вы ответить мне, пожалуйста?   -  person Rui Emanuel Quaresma    schedule 28.04.2015


Ответы (1)


Я понял это правильно.

Что я должен сделать, так это:

объявить IMenuItem item; перед OnCreate()

затем измените это:

public override bool OnCreateOptionsMenu(IMenu menu)
        {
            MenuInflater.Inflate(Resource.Drawable.actionbar_produtos, menu);
            menu.FindItem (Resource.Id.edita).SetEnabled (false);
            menu.FindItem (Resource.Id.apaga).SetEnabled (false);
            item = menu.FindItem (Resource.Id.edita);

            return base.OnCreateOptionsMenu(menu);
        }

В ListView_ItemClick я поместил это: item.SetEnabled (true);

Спасибо за помощь!

person Rui Emanuel Quaresma    schedule 28.04.2015