abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:11 | Komunita

    V Brestu dnes začala konference vývojářů a uživatelů linuxové distribuce Debian DebConf25. Na programu je řada zajímavých přednášek. Sledovat je lze online.

    Ladislav Hagara | Komentářů: 0
    dnes 11:33 | IT novinky

    Před 30 lety, tj. 14. července 1995, se začala používat přípona .mp3 pro soubory s hudbou komprimovanou pomocí MPEG-2 Audio Layer 3.

    Ladislav Hagara | Komentářů: 12
    dnes 10:55 | IT novinky

    Výroba 8bitových domácích počítačů Commodore 64 byla ukončena v dubnu 1994. Po více než 30 letech byl představen nový oficiální Commodore 64 Ultimate (YouTube). S deskou postavenou na FPGA. Ve 3 edicích v ceně od 299 dolarů a plánovaným dodáním v říjnu a listopadu letošního roku.

    Ladislav Hagara | Komentářů: 16
    včera 17:55 | Zajímavý projekt

    Společnost Hugging Face ve spolupráci se společností Pollen Robotics představila open source robota Reachy Mini (YouTube). Předobjednat lze lite verzi za 299 dolarů a wireless verzi s Raspberry Pi 5 za 449 dolarů.

    Ladislav Hagara | Komentářů: 11
    11.7. 16:44 | Komunita

    Dnes v 17:30 bude oficiálně vydána open source počítačová hra DOGWALK vytvořena v 3D softwaru Blender a herním enginu Godot. Release party proběhne na YouTube od 17:00.

    Ladislav Hagara | Komentářů: 3
    11.7. 14:55 | Humor

    McDonald's se spojil se společností Paradox a pracovníky nabírá také pomocí AI řešení s virtuální asistentkou Olivii běžící na webu McHire. Ian Carroll a Sam Curry se na toto AI řešení blíže podívali a opravdu je překvapilo, že se mohli přihlásit pomocí jména 123456 a hesla 123456 a získat přístup k údajům o 64 milionech uchazečů o práci.

    Ladislav Hagara | Komentářů: 16
    11.7. 00:11 | Nová verze

    Byla vydána (𝕏) červnová aktualizace aneb nová verze 1.102 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a videi v poznámkách k vydání. Ve verzi 1.102 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.

    Ladislav Hagara | Komentářů: 0
    10.7. 21:00 | Bezpečnostní upozornění

    Byla vydána nová verze 2.4.64 svobodného multiplatformního webového serveru Apache (httpd). Řešeno je mimo jiné 8 bezpečnostních chyb.

    Ladislav Hagara | Komentářů: 4
    10.7. 15:22 | Nová verze

    Společnost xAI na síti 𝕏 představila Grok 4, tj. novou verzi svého AI LLM modelu Grok.

    Ladislav Hagara | Komentářů: 12
    10.7. 12:55 | Bezpečnostní upozornění

    Ministerstvo vnitra odhalilo závažný kyberincident v IT systému resortu. Systém, do kterého se dostal útočník bez oprávnění, byl odpojen a nedošlo k odcizení dat [𝕏].

    Ladislav Hagara | Komentářů: 16
    Jaký je váš oblíbený skriptovací jazyk?
     (59%)
     (26%)
     (7%)
     (3%)
     (1%)
     (1%)
     (4%)
    Celkem 393 hlasů
     Komentářů: 16, poslední 8.6. 21:05
    Rozcestník

    Dotaz: Android, různé layouty řádků v listView

    16.7.2017 13:14 Raaďa
    Android, různé layouty řádků v listView
    Přečteno: 318×
    Ahoj, Mám pole stringů, každý řádek má 5 položek. Mám listview, kde každý řádek má 4 sloupce. Mám 2 různé layouty řádků pro listview. Konkrétní layout se v getView() vybere podle toho, jaká je hodnota v 5-tém sloupci (který není vidět v listview, je tam jenom pro uložení informace o zpracování). viz níže.
        public View getView(int position, View convertView, ViewGroup parent) {
            View vi = convertView;
            ViewHolder holder = new ViewHolder();
    
            if (convertView == null) { //need to be fixed
                if (data[position][4] != "") {
                    vi = inflater.inflate(R.layout.processed_rows, null);
                    holder.tvCode = (TextView) vi.findViewById(R.id.prCode);
                    holder.tvDesc = (TextView) vi.findViewById(R.id.prDesc);
                    holder.tvCurrloc = (TextView) vi.findViewById(R.id.prCurrLoc);
                    holder.tvDestination = (TextView) vi.findViewById(R.id.prTargetLoc);
                } else {
                    vi = inflater.inflate(R.layout.rows, null);
                    holder.tvCode = (TextView) vi.findViewById(R.id.rCode);
                    holder.tvDesc = (TextView) vi.findViewById(R.id.rDesc);
                    holder.tvCurrloc = (TextView) vi.findViewById(R.id.rCurrLoc);
                    holder.tvDestination = (TextView) vi.findViewById(R.id.rTargetLoc);
                }
    .......
    
    Toto ovšem funguje pouze, pokud position souhlasí s indexem v poli dat. Jakmile začnu scrolovat, vzniká zmatek v layoutech řádků (jsou přiřazeny špatně).

    Mohl by někdo poradit, jak zajistit, aby se layouty přiřazovaly správně i během scrollování?

    Odpovědi

    21.7.2017 11:01 Sten
    Rozbalit Rozbalit vše Re: Android, různé layouty řádků v listView
    Mít oba layouty v jednom FrameLayoutu a v getView přepínat jejich viditelnost. Ale v tomto případě mi přijde, že samotný přístup, že máte dva různé layouty pro velmi podobná data, je chybně navržený.
    24.7.2017 17:13 Raaďa
    Rozbalit Rozbalit vše Re: Android, různé layouty řádků v listView
    A jak to má být navrženo správně?
    29.7.2017 11:16 Sten
    Rozbalit Rozbalit vše Re: Android, různé layouty řádků v listView
    Jeden layout s tím, že pokud chcete třeba jiné podbarvení, ikony či tlačítka pro zpracované řádky, tak je měníte (zobrazujete/skrýváte) programově v getView.
    24.7.2017 13:11 milan jurkulak
    Rozbalit Rozbalit vše Re: Android, různé layouty řádků v listView

    are data changed due scrolling?
    try:

    public View getView(int position, View convertView, ViewGroup parent) {
        View vi = convertView;
    
        ViewHolder holder = (vi == null) ? null : (ViewHolder) vi.getTag();
    
        if (holder == null) {
            //todo move to viewholder constructor
            vi = inflater.inflate(((data[position][4] != "") 
                 ? R.layout.processed_rows
                 : R.layout.rows
            ), null);
    
            // holder constructor can have parameters, 
            // example: new ViewHolder(inflater, vi, data[position])
            holder = new ViewHolder();
    
            //todo move to viewholder constructor
            vi.setTag(holder);
     
            // todo this can be in holder too
            holder.tvCode = (TextView) vi.findViewById(R.id.prCode);
            holder.tvDesc = (TextView) vi.findViewById(R.id.prDesc);
            holder.tvCurrloc = (TextView) vi.findViewById(R.id.prCurrLoc);
            holder.tvDestination = (TextView) vi.findViewById(R.id.prTargetLoc);
        }
            
        // todo: holder function to set data
        holder.setData(data[position]);
        
        return vi;
    }
    
    24.7.2017 16:45 Sten
    Rozbalit Rozbalit vše Re: Android, různé layouty řádků v listView
    Tohle má ten samý problém, jako má OP. Při skrolování se views recyklují, takže se nevolá inflate.

    Založit nové vláknoNahoru

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.