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

Որոնման զտիչ Container Codename One-ում

Ես փորձում եմ ներդնել որոնման զտիչ իմ Container-ում, որը պարունակում է կոճակների մի շարք:

Ահա իմ կոդը.

public void listMenu() {

    Dialog loading = new InfiniteProgress().showInifiniteBlocking();
    loading.show();

    final Form listMenu = new Form("List Menu");
    listMenu.setLayout(new BoxLayout(BoxLayout.Y_AXIS));

    Container list = new Container();
    list.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
    list.removeAll();

    Button back = new Button("Back to Main Menu");

    ParseQuery<ParseObject> query = ParseQuery.getQuery("mylist");
    query.whereExists("Title");

    List<ParseObject> results = null;

    try {

        Button btn = null;
        results = query.find();

        if(!results.isEmpty()) {
        int index = 0;
        int size = results.size();
        for(;index < size;++index) {
            list.add(btn = new Button(results.get(index).getString("Title")));
            addListener(btn);
        }
        }

    } catch (com.parse4cn1.ParseException e) {

        Dialog.show("Err", "Server is not responding.", "OK", null);
    }

    listMenu.add(list);
    listMenu.add(back);
    listMenu.show();
    loading.dispose();

    back.addActionListener(new ActionListener() 
    {
        public void actionPerformed(ActionEvent ev) 
        {
            new StateMachine("/theme");
        }
    });
}

Այս կոդը հիմնականում տվյալների բազայից հարցում է անում, այնուհետև դրա արդյունքները տեղադրում է կոճակների մեջ, այնուհետև ավելացվում է բեռնարկղում: Իմ հարցն այն է, թե ինչպես կիրառել որոնման զտիչ իմ Container-ում: Ես տեսել եմ FilterProxyListModel<T>-ը, բայց վստահ չեմ, արդյոք ListModel<T>-ը համատեղելի է Container-ի հետ: Ես կցանկանայի տեսնել իմ կոդում որոնման ֆիլտրի իրականացման օրինակ:

02.04.2018

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


1

FilterProxyListModelList-ի համար է, որն այլևս չենք առաջարկում: Կա կոնտեյների որոնման ամբողջական նմուշ այստեղ: Այն օգտագործում է MultiButton, բայց Button-ի օգտագործումը նույնքան լավ կաշխատի.

hi.getToolbar().addSearchCommand(e -> {
    String text = (String)e.getSource();
    if(text == null || text.length() == 0) {
        // clear search
        for(Component cmp : hi.getContentPane()) {
            cmp.setHidden(false);
            cmp.setVisible(true);
        }
        hi.getContentPane().animateLayout(150);
    } else {
        text = text.toLowerCase();
        for(Component cmp : hi.getContentPane()) {
            Button mb = (Button)cmp;
            String line1 = mb.getText();
            boolean show = line1 != null && line1.toLowerCase().indexOf(text) > -1;
            mb.setHidden(!show);
            mb.setVisible(show);
        }
        hi.getContentPane().animateLayout(150);
    }
}, 4);
03.04.2018
  • Ավելացվեց իմ կոդի մեջ, բայց երբ ես փորձեցի կատարել իմ առաջին որոնումը, ստացա հետևյալը. Exception՝ java.lang.ClassCastException - com.codename1.ui.Container-ը չի կարող փոխանցվել com.codename1.ui.Button-ին: 03.04.2018
  • Ձեր դեպքում դուք պետք է օգտագործեք list-ը և ոչ թե բովանդակության վահանակը, ինչպես դա արեց օրինակելի կոդը 04.04.2018
  • Շատ շնորհակալություն, շտկվեց այն՝ փոխելով hi.getContentPane()-ը իմ Container-ի, այնուհետև ամեն ինչ աշխատում է այնպես, ինչպես նախատեսված էր: 04.04.2018
  • Նոր նյութեր

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

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

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

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

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

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

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