Hirdetés
- Picit gazdaságosabb és halkabb lett a PlayStation 5 Pro legfrissebb verziója
- Dollármilliárdokért csábított el Zuckerberg egy kínai Manust
- Új versenyző áll rajtvonalhoz a tápok világában
- Tiltott témává tenné Kína az öngyilkosságot az AI számára
- Hálózati sebességre gyúrt a Minisforum új mini-munkaállomása
- Milyen belső merevlemezt vegyek?
- Apple MacBook
- Vezetékes FEJhallgatók
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Melyik tápegységet vegyem?
- Kormányok / autós szimulátorok topikja
- DUNE médialejátszók topicja
- Kezdő fotósok digitális fényképei
- Ventilátorok - Ház, CPU (borda, radiátor), VGA
- SSD kibeszélő
Új hozzászólás Aktív témák
-
thon73
tag
válasz
WonderCSabo
#1442
üzenetére
Kedves WonderCSabo! (ill. kedves mindenki!)
Még egy utolsót szeretnék kérdezni, mielőtt végképp feladom a küzdelemet...
Az előző megoldások tökéletesek, ki is próbáltam őket, - csak éppen (List)Fragment-nél nem működnek. Ott ugyanis úgy kell elkészítenem a kódot, hogy ÜRES Konstruktorral újra elkészíthető legyen a Fragment.
Problémám a következő: Teljesen egyforma ListView-k (és ListFragmentek) jelenítik meg egy adatbázis különböző tábláit. Az eltérés néhány (6-7) paraméterben van: LoaderId, projection, from, to, content_uri stb.; maga a kód mindig azonos.Mi lenne a legjobb módszer arra, hogy egyetlen ListFragment osztály tartalmazza a kódot, és minden táblához ebből - más paraméterezéssel - egy külön ListFragmentet készítsen? Tényleges paraméterezés nem használható, az üres konstruktor miatt. Két ötletet kínlódtam ki: vagy abstract metódusokkal kényszerítem ki a "paraméterek" átadását a leszármazottakban, vagy az argument Bundle-be teszem bele egy-egy konkrét ListView-ban a paramétereket.
Nem létezik, hogy ne lenne erre valami pofonegyszerű megoldás, csak sehogy nem találom.

Előre is köszönet minden hasznos ötletért! -
thon73
tag
válasz
WonderCSabo
#1442
üzenetére
Akkor csak a tanulság kedvéért. Vigyázat mindenki csukja be a szemét, hibás kód következik!
public ABSTRACT class A extends ListFragment {
public STATIC ListFragment newInstance() {
return new ??getClass??();
}
}
public class B extends A {
}
public class C extends A {
}Az ötlet az volt, hogy B.newInstance() létrehoz egy B példányt, melyet ListFragment-ként visszaad, míg C.newInstance() létrehoz egy C példányt, melyet szintén ListFragmentként ad vissza.
Ha a tényleges példány csak az abstract, mint minta alapján jönne létre, akkor a kérdőjeles rész mindig a példány osztálya lenne. De persze ez nem működik, legalábbis a static metódusban nincs ilyen hivatkozás. Nem staticban egyébként a this így működik, mentségemre legyen mondva.Utólag látom, hogy az egész hibás ötlet volt. (Tegyük még hozzá: newInstance minden esetben egy hosszabb Bundle-t hoz létre, ezért merült fel az ötlet.)
(((Azt már tényleg csak ezer zárójelben teszem hozzá, hogy a leszármazott osztály nevét meg lehet szerezni, és lehet ilyet körülményesen mégis gyártani, de a javasolt megoldás sokkal átláthatóbb, és kényelmesebb.)))
Remélem senkit nem bosszantottam azzal, hogy csupán a tanulság kedvéért helytelen kódot szemeteltem a fórumba.
Én nagyon sokat tanultam a javaslataidból, hála és köszönet! 
Új hozzászólás Aktív témák
- Sony A7 IV váz + Cage + Akkuk (3 év gari, 2500 expó)
- Intel Core i5-12400F CPU + gyári hűtő
- Lenovo i7 laptop, viseletes, üzemképes.
- HP ProBook 450 G6, 15,6" FHD IPS kijelző, I5-8265U CPU, 8GB DDR4, 256GB SSD, W11, Számla, 1 év garan
- HP ProBook 445 G8, 14" HD kijelző, Ryzen 5 5600U CPU, 16GB DDR4, 512GB SSD, W11, Számla, 1 év garanc
- Lenovo ThinkPad T14s Gen 3 i5-1245U 14" FHD+ 16GB 512GB 1 év teljeskörű garancia
- Bomba ár! Lenovo X1 Carbon G7: i5-8365U I 8GB I 256GB SSD I 14" FHD I HDMI I Cam I W11 I Gari!
- Új, Aktiválatlan iPhone 14 (128 GB) (rendelhető)
- Xiaomi Redmi Note 10s 128GB, Kártyafüggetlen, 1 Év Garanciával
- Új Apple iPhone 16 Pro Max 256GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Az előző megoldások tökéletesek, ki is próbáltam őket, - csak éppen (List)Fragment-nél nem működnek. Ott ugyanis úgy kell elkészítenem a kódot, hogy ÜRES Konstruktorral újra elkészíthető legyen a Fragment.
Én nagyon sokat tanultam a javaslataidból, hála és köszönet! 


