AMcoder - javascript, python, java, html, php, sql

ինչպես անջատել համատեքստի ընտրացանկը Android-ի որոշակի ListView տարրերի համար

Ես գիտեմ, որ այս հարցը նախկինում տրվել է, և պատասխանն այն էր, որ անտեսվեր onPrepareContextMenu()/onCreateContextMenu(): Բայց ես չհասկացա և դրա համար որևէ լուծում չստացա: Խնդրում եմ, օգնեք ինձ, թե ինչպես անջատել համատեքստային ընտրացանկը որոշակի ListView տարրերի համար:


  • անտեսեք onPrepareContextMenu()-ը և ստուգեք ընթացիկ ընտրված ցուցակի դիրքը, ունենաք բուլյան դրոշ՝ ընտրացանկից բոլոր տարրերը հեռացնելու համար = հաղթել: 18.03.2012
  • կարո՞ղ եք ավելի կոնկրետ լինել այս մասին, ես նկատի ունեմ, որ ինձ անհրաժեշտ է օրինակելի կոդ՝ այն հստակ հասկանալու համար: Ես չեմ կարող պարզել, թե ինչպես հեռացնել բոլոր տարրերը ցանկից ՀՈՍԿԱՏԵՂ ցանկի տարրի համար: 18.03.2012

Պատասխանները:


1

Ձեր համատեքստի ընտրացանկը բացելը կախված է ձեր որոշակի տրամաբանությունից: Օրինակ, onItemClick մեթոդում (ձեր listView-ում) դուք պետք է ստուգեք ձեր նյութի բովանդակությունը և ցուցադրեք կամ չցուցադրեք համատեքստի ընտրացանկը: Ես չեմ հասկանում, ինչու է դա ձեզ համար խնդիր:

ԹԱՐՄԱՑՆԵԼ

public class ExampleActivity extends ListActivity {

    private ListView mListView;
    private ArrayList<String> mList = new ArrayList<String>();
    private ArrayAdapter<String> mArrayAdapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mArrayAdapter = new ArrayAdapter<String>(this, android.R.id.list ,mList);
        mListView = (ListView) findViewById(android.R.id.list);
        setListAdapter(mArrayAdapter);
        registerForContextMenu(mListView);

        mListView.setOnItemLongClickListener(new OnItemLongClickListener() {

            @Override
            public boolean onItemLongClick(AdapterView<?> adapterView , View v,int position, long id) {
                mListView.getItemAtPosition(position); //check current item with your logic and show or don't show contextMenu
                // for example I will show
                mListView.showContextMenu(); //to show
                return true;
            }
        });
    }

    @Override
    public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) {
        // add contextmenu items
        super.onCreateContextMenu(menu, v, menuInfo);
    }

    @Override
    public boolean onContextItemSelected(MenuItem item) {
        // todo some logic...
        return super.onContextItemSelected(item);
    }

}

Միգուցե դա ձեզ օգնի... հաջողություն...

18.03.2012
  • OnCreate()-ում ես գրանցում եմ իմ listview-ը registerForContextMenu(listview)-ով: Իսկ onListItemClick-ում (ListView l, View v, int position, long id)-ում, թե ինչպես պետք է միացնեմ/անջատեմ ցանկի որոշակի տարր: Ենթադրենք վերցրեք 1-ին կետը ListView-ում: Ինչպես ես պետք է գրեմ, որ միացնել/անջատել կոդը սրանից հետո - listview.getItemAtPosition(0): ? 18.03.2012
  • Ձեր contextMenu-ն կցուցադրվի, երբ զանգահարեք showContextMenu() մեթոդը: Դուք կստուգեք ձեր տարրը, և եթե Ձեզ անհրաժեշտ է show contextMenu, դուք կկանչեք showContextMenu() և այլ կերպ չեք զանգի: Ինչումն է խնդիրը? 18.03.2012
  • OnListItemClick (ListView l, View v, int position, long id) մեթոդում կա int դիրքի պարամետր: Դա ձեր ընթացիկ սեղմված տարրի դիրքն է: Դուք ստուգում եք տարրը ըստ getItemAtPosition (int դիրք) և ինչ-որ բան անում... 18.03.2012
  • Նույնիսկ առանց showContextMenu() մեթոդը գրելու, իմ listview-ը ցույց է տալիս համատեքստի ընտրացանկը: Ես փորձել եմ getItemAtPosition(դիրքորոշումը), բայց ոչ use.showContextMenu()-ը ցուցադրվում է միայն Listview l պարամետրի համար: 18.03.2012
  • Աշխատեց որպես հմայքը և մի փունջ շնորհակալություն օրինակ կոդի համար: Շատ ժամեր խփեցի գլուխս և վերջապես ստացա պատասխանը: Շնորհակալություն ևս մեկ անգամ: 18.03.2012
  • Պարզապես նշում. այն, ինչ իրականում անջատում է այստեղ՝ յուրաքանչյուր տողի համատեքստի մենյուի ցուցադրումը, այն է, որ դուք վերադարձրել եք true onItemLongClick մեթոդը, ինչը նշանակում է, որ իրադարձությունն այլևս չի տարածվում: 22.04.2015

  • 2

    Նաև կարող եք վերագրանցել ձեր ցուցակի դիտումը, ինչը կստիպի ձեր onCreateContextMenu մեթոդը նորից գործարկել

    ListView lv = (ListView) findViewById(R.id.lvExample);
    registerForContextMenu(lv);
    

    Եվ այնուհետև դուք կարող եք թաքցնել կամ ցուցադրել ընտրացանկի տարրերը, ինչ տրամաբանությամբ ցանկանում եք onCreateContextMenu մեթոդով

    12.07.2013
  • Ես գնում եմ սա: Չեմ կարծում, որ OnItemLongClickListener-ի հետ շփոթելը լավ գաղափար է: 27.09.2013
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..