Hirdetés
- Milyen billentyűzetet vegyek?
- Zeneszerkesztő és DJ topic
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- Házimozi haladó szinten
- Vezeték nélküli fülhallgatók
- AMD Navi Radeon™ RX 9xxx sorozat
- Mini-ITX
- Forrasztásról mindent az alapoktól!
- Kormányok / autós szimulátorok topikja
- Milyen TV-t vegyek?
Ú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
- Villanyszerelés
- exHWSW - Értünk mindenhez IS
- Linux kezdőknek
- Battlefield 6
- Futás, futópályák
- Szívós, szép és kitartó az új OnePlus óra
- Milyen billentyűzetet vegyek?
- MOBILTELEFON / TARTOZÉK / OKOSÓRA / OKOS KIEGÉSZÍTŐ beárazás
- Honor 200 Pro - mobilportré
- Világ Ninjái és Kódfejtői, egyesüljetek!
- További aktív témák...
- ÁR ALATT "RTX 4090" GARANCIÁLIS GAMER LAPTOP! - i7-13700HX, RTX 4090, 32GB DDR5, 1TB SSD
- Stellar Blade PS5 / 1x kijátszott / Alza vásárlás
- MSI MPG 271QRX QD-OLED 360Hz 1440p Gamer Monitor Garanciás 2027.12.03-ig
- Samsung Galaxy S23 Ultra 512GB,Újszerű,Dobozaval,12 hónap garanciával
- Apple iPhone 15 Plus 256GB,Újszerű,Dobozaval,12 hónap garanciával
- Kuriózum: Ozark Trail (amerikai) fejlámpa 600 lumen
- iPhone 17 Pro Max Silver - Bontatlan !! www.stylebolt.hu - Apple eszközök és tartozékok !!
- BESZÁMÍTÁS! Asus TUF Gaming OC RTX 3080 10GB videókártya garanciával hibátlan működéssel
- iPhone 13 Pro 128GB 100% (1év Garancia) - ÚJ EREDETI AKKUMULÁTOR
- ASUS Zenbook 14 - 14" 2.8K OLED 90Hz - i5-1240P - 16GB - 512GB - Win11 - 1,5 év garancia - MAGYAR
Állásajánlatok
Cég: Laptopműhely Bt.
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! 

