Új hozzászólás Aktív témák
-
thon73
tag
Köszönöm. Bár ezzel a válasszal nem sokra mentem.
Megpróbálom kicsit érthetőbben elmagyarázni. Az InputMethodService több billentyűzet adatait tartalmazza a nagyjából a következő módon:
InputMethodService - KeyboardView - GeneralKeyboardData - Keyboard - Button - Text
Természetesen egy kicsit összetettebb az egész, de a sor minden egyes gomb esetén ezen alaposztályok leszármazottaiból áll össze. A sor végén álló "Text" pl. definiálja az "A" karaktert (néhány egyéb tulajdonsággal, pl. hogy . után legyen nagy, meg ilyesmi.)
A mi szempontunkból az egyetlen lényeges dolog, hogy amikor a "Text" osztály el szeretné küldeni az 'A' karaktert, akkor az InputMethodService osztály metódusaira van szüksége. (Amire viszont senki másnak.)
Eddig pont ugyanúgy oldottam meg, ahogy pl. a Context-nél történik (Tehát nem a service-t szerettem volna contextből kinyerni.), vagyis az InputMethodService szépen végigutazott az egész soron, és az összes "Text" példány tárolta a hivatkozást, hogy tudjon kommunikálni.
A változáson pedig azért kezdtem el gondolkodni, mert szerettem volna az egész adatstruktúra legenerálását leválasztani a Service-ről. Emiatt viszont az InputMethodService nem áll rendelkezésre akkor, amikor az adatstruktúra elkészül.
Több lehetőséget találtam:
Amikor a kész adatstruktúrát a Service-hez kapcsolom, végigmegyek az összes elemen és megadom az InputMethodService-t.
Vagy egyedül a GeneralKeyBoardData (az adatstruktúra legalsó eleme) kapja meg, és a Text ettől kérdezi le.
Vagy valahogy kiszedem az InputMethodService hivatkozását magából az InputMethodService-ből, amiből egyébként egyetlen van, és addig folyamatosan él, amíg nem váltok másik billentyűzetre (ilyenkor viszont az adatstruktúra sem létezik tovább.)Amúgy eddig az "erőltetett objektumokkal" szépen működik, de azt gondoltam, kell legyen ennek egyszerűbb módja is. Csak éppen még nem jöttem rá, mi az, ezért kértem segítséget az utolsó elgondoláshoz.
((A fentiektől függetlenül filozófiailag "sok hülye meg erőlteti itt az objektumokat" kijelentésnek igen komoly háttere van. Nagyon sok, nálamnál sokkal komolyabb programozó vitatja az objektum-orientált programozás előnyeit szemben a hagyományos, lineáris programozással. Mielőtt mindenki nekem ugrana és szétszedne, nem állást foglaltam mellettük, csak tényként megemlítettem ezt az iskolát is. Én ugyan nem tudom megítélni, de valószínűleg amúgy a java egy objektum-orientált android környezetben nem is alkalmas erre.))
Új hozzászólás Aktív témák
- TP-LINK routerek
- Keychron egerek bemutatója
- AMD GPU-k jövője - amit tudni vélünk
- Bundle topik
- Automobilista 2
- Apple MacBook
- LEGO klub
- Vác és környéke adok-veszek beszélgetek
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Elkalapálta a snapdragonos Galaxy S26 az exynososat
- További aktív témák...
- Fury 15 G8 15.6" FHD IPS i7-11850H RTX A2000 32GB 512GB NVMe magyar vbill ujjolv gar
- ZBook Firefly 14 G11 14" FHD+ IPS Ultra 7 155H RTX A500 32GB 1TB NVMe ujjlolv IR kam gar
- Garmin Epix Sapphire White Titanium (Gen2) - Bontatlan
- Gigabyte A16 CVH 15.6" FHD+ IPS i7-13620H RTX 5060 16GB 512GB NVMe IR kam gar
- Lenovo T15 G2 i7-1185G7 16Gb ram, 512Gb NVMe, 15,6", számla, 1 év garancia
- ASUS Strix GeForce GTX 1080 8GB GDDR5X 256bit (ROG STRIX-GTX1080-A8G-GAMING) Videokártya
- LG 75QNED813RE / QNED / 75" - 190 cm / 4K UHD / 120Hz & 4ms / HDR Dolby Vision / HDMI 2.1
- HIBÁTLAN iPhone 13 Pro Max 256GB Graphite -1 ÉV GARANCIA - Kártyafüggetlen, MS4666
- HP Zbook 15 G5,15.6",UHD,TOUCH,i7-8850H,32GB DDR4,1TB SSD,P2000 4GB VGA,WIN11,IR KAMERA
- Lenovo T14S Thinkpad FHD IPS i5-1135G7 16GB RAM 256GB SSD Intel Iris XE Graphics Win11 Pro Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
