- Okosóra és okoskiegészítő topik
- Milyen okostelefont vegyek?
- Xiaomi 15 - kicsi telefon nagy energiával
- Samsung Galaxy Watch7 - kötelező kör
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Szívós, szép és kitartó az új OnePlus óra
- Honor Magic6 Pro - kör közepén számok
- Csak semmi szimmetria: flegma dizájnnal készül a Nothing Phone (3)
- Mobil flották
- iPhone topik
Új hozzászólás Aktív témák
-
kemkriszt98
tag
válasz
WonderCSabo #1759 üzenetére
Hozzá kellet adni egy sort a Manifest fájlhoz:
<uses-permission android:name="android.permission.CALL_PHONE" /> -
pittbaba
aktív tag
válasz
WonderCSabo #1725 üzenetére
Vannak letölthető appok amik csomagban adnak webservert php modullal illetve mysql servert, és phpmyadmint. Ilyeneket próbáltam, volt amit meg is vettem, de mindegyiknél az a baj, hogy a server indítása gombnyomáshoz kötött, ami meg esetleg beállítható h bootkor startolja a servert az is néha bugos, nem indul a server automatikusan telefon reboot után, de a webservert kezelő app fut.
Ilyenkor az én appom ezt érzékeli és újraindítja a webservert kezelő appot, de az továbbra sem mindig indítja el magát a webservert. Ezért olyan megoldás kellene, hogy lenyúlok magáig a webserver programig és azt indítom.
A webserver azért kell, hogy le tudja kérni a programom hogy az adott bejövő hívás telefonszáma benne van e az adatbázisban, mert csak akkor nyit az ajtó. Azért nem sima appon belüli adatbázist használok, mert valahogy távolról tudnom kell adminisztrálni, ezért json -al adom át az adatot a mysqlből az appnak.Mivel szeretném hogy minden éjszaka legyen egy automatikus reboot, ezért fontos hogy megoldjam reboot után minden felálljon rendben, ha pedig nem akkor próbálja javítani.
Remélem sikerült normálisan leírnom.
A ciklusokat értem, sokat tanulmányoztam, rengeteget teszteltem már, de még mindig hajlamos vagyok bekavarodni.
-
fatal`
titán
válasz
WonderCSabo #1701 üzenetére
Igen tudom.
-
Sianis
addikt
válasz
WonderCSabo #1681 üzenetére
Igen, azok meg külön-külön megérdemelnének egy-egy cikket is akár a Logoutra.
Sianis
-
eastsider
nagyúr
válasz
WonderCSabo #1662 üzenetére
simán startactivityval
ú köszi!! megy (tök nem ott kerestem a hibát). fú degázazt hiszem ideje aludni
köszönöm mégegyszer -
RexpecT
addikt
válasz
WonderCSabo #1656 üzenetére
Az lesz
.
-
eastsider
nagyúr
válasz
WonderCSabo #1649 üzenetére
köszi! akkor jól értettem alapból a dolgot, de mégis zavart (látszik, hogy nem értem még teljességgel aza ctivity életciklusait. tanulmányozom még az irodalmat
bAtt001: WonderCSabo megfejtette, azt amit végülis sejtettem, de mégse...
na mindegy, így is rengeteg mindenre rájöttem ebből a gyakorlatból
-
eastsider
nagyúr
válasz
WonderCSabo #1644 üzenetére
ActivityOne
ActivityTwo
előre is köszi. már rengeteget néztem, de nem jövök rá, mi a gáz. tuti valami banális -
Karma
félisten
válasz
WonderCSabo #1626 üzenetére
Jól. Bár némely widgetet JNI-n keresztül is elérhetővé faragtak, valamelyik oldalon láttam...
-
negyedes
addikt
válasz
WonderCSabo #1615 üzenetére
amugy megvan a megoldas. le kell huzzam geprol(ne erzekelje az SDK) ujrainditom a tablat es megy. ha visszakotom a gepre, akkor megint nem megy.
-
negyedes
addikt
válasz
WonderCSabo #1613 üzenetére
<EditText android:id="@+id/emailtextRead"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingTop="4dip"
android:paddingLeft="14dip"
android:paddingRight="12dip"
android:textSize="15dip"
android:cursorVisible="false"
android:editable="false"
android:textIsSelectable="true"igy nez aki az editviewm. mar bent van, 1 darab szot ki lehet jelolni, de az ket db csuszka mar nem jelenik meg.
-
thon73
tag
válasz
WonderCSabo #1608 üzenetére
Abszolút off, de nagyon kíváncsi vagyok!
Bevallom, én EGY egész évig bütyköltem az androidon, mire az első komoly programot biztonságosan el tudtam készíteni. (Igaz, munka és család mellett, kicsit hobbiból csináltam, viszont komoly C hátterem volt, és az objektumokkal sem most találkoztam először.)
Mondjuk, most tartok ott, hogy a Karma által felsorot elemek egy részét én is felsoroltam volna, a másik részében meg tudom, honnan kell elindulni, de még soha nem használtam.
Viszont a sokadik emberke kérdezi meg, hogy itt van egy ilyen meg olyan program, segítsetek, hogyan dobjam össze egy esős (havas) délutánon! Androidot(Eclipset stb.) ugyan még nem is láttam közelről.
Most komolyan: én rontottam el valamit, és negatív az iq-m? Ez tényleg így megy?
Mert akkor LÉGYSZI LÉGYSZI LÉGYSZI nekem is árulja el valaki, hogy a túróba kell ezt a vacakot felprogramozni!? Nekem valahogy mindig hibaüzenetek jönnek, és a legtöbbször nem is egy e betűt hagytam le az utasítás végéről...Bocs, nem akartam gunyoros lenni, de engem ez télleg nagyon érdekel!
Ja, és ami nem OFF: Meg lehet tanulni Java-t is (azt még magyarul is), Androidot is (ahhoz azért angol tudás kell), internetes útmutatókból is. Nekem ugyan nem hirtelen, de sikerült. Amikkel kezdtem, azt ITT leírtam. Ez is egy forrás, elég alapszintű, van sok más is, néhányat az oldalon is felsoroltam.
-
Bozek
nagyúr
válasz
WonderCSabo #1603 üzenetére
Vagy sokkal egyszerűbb hagyni a programozás részét és valamelyik már kész automatizáló programmal megoldani a problémát. Van többféle ilyen alkalmazás, pl.: Tasker, E-Robot, Llama, stb.
-
ted_mosby
senior tag
válasz
WonderCSabo #1600 üzenetére
Szia ! Sajnos 0
-
008anita
csendes tag
válasz
WonderCSabo #1564 üzenetére
Köszönöm szépen a választ, de végül sikerült máshogy megoldanom
-
macsaba97
csendes tag
válasz
WonderCSabo #1579 üzenetére
Hát azt tudom hogy C-ben nincs. És esetleg te vagy valaki tudna adni valami kiindulópontot az adatbeolvasáshoz? A többit megoldom szerintem mert ahhoz találok anyagot csak ehhez nem (aztán jó eséllyel azokkal is visszatévedek). Azok már megvannak hogy hello world meg olvastam némi szakirodalmat javáról de még semmi használhatót nem készítettem. Van annyira fontos a dolog, hogy megtanulom a javát meg érdekel is csak inkább szép lassan tanulnám. Szóval most így első körben valami kiinduló pont kéne.
Üdv,
Csaba -
RexpecT
addikt
válasz
WonderCSabo #1576 üzenetére
Okés, köszönöm
.
-
thon73
tag
válasz
WonderCSabo #1568 üzenetére
Nem az SQL önmagában, hanem a konkrét megvalósításban. Az adatbázis (most) statikus, nincs törlés, nincs beillesztés, (ha lenne, itt már nyerne az SQL), csak olvasás van. A statikus adatbázist be kellene olvasni teljes egészében (egyébként már ez elég lassú, közel 300.000 elemről beszélünk (Ja igen, és már most van 8 ilyen adatbázisom)). A legnagyobb probléma azonban az, hogy sqlite-ban (legalábbis android alatt) az összehasonlító metódust nem tudom én, kódból elkészíteni (más nyelvekben van erre lehetőség). Emiatt minden egyes bejegyzésre (rekordra) le kell generálni a mezőket pl. ékezet nélkül. Nem akarok részletekbe menni, de nekem háromféle összehasonlítás kell, amit most kód végez. Sqliteban ehhez minden rekordban 3 mező kellene, praktikusan mindegyik ugyanazzal az adattal, amit mindhárom mezőben más írásmóddal írok. Ezek egyébként izgalmas kérdések, mert azt boncolgatják, lehet-e ilyen volumenű feladatra telefont használni.
Namármost a vicc az, hogy lehet; legalábbis nekem prímán működik. A sebessége is kiváló, hiszen max. 20 keresésből megtalálja a kívánt elemet. Ez azt jelenti, hogy írom a keresőszót, és folyamatában, minden betű után keres. Ugyanakkor - mivel nem elég gondosan oldottam (még!) meg - csak az indexadatok olvasása 4 másodperc (ez lassú, ha elfordításkor ennyit kell várni), az indexelés meg 45 perc (SGSII-n), de ugye azt egyszer csinálom meg egy életben (elvileg).
Úgy gondoltam, ha már ezt kijavítom (a 4 mp-et mármint), akkor az itt javasolt beolvasást is átírom, csak éppen elakadtam a puffer-méret kérdésnél. (No igen, az is egy válasz, hogy 8192, nem olyan sok az...
)
A "szívásról" annyit, hogy az első verzió PalmOS alatt született, ahol még kevesebb adatbázis-támogatás volt. Sőt! legfeljebb 64K elemet tudott kezelni, tehát több "táblába" kellett rendeznem az adatokat. Na az szívás volt, 3 hétig törtem a fejem az algoritmusokon. Viszont ezt átteni Android (és Java) alá csak egy délután volt. Most ott tartok, hogy az Android alatt néhány dolgon lehetne gyorsítani és egyszerűsíteni...
-
thon73
tag
válasz
WonderCSabo #1566 üzenetére
A file indexelve van, és az indexek sorba rendezve. De a szabadszavas keresésnél meg kell nézzem, hogy melyik indexnél kezdődik ugyanígy a bejegyzés. Ezzel egyébként nincs is gond, a rendezettség miatt rohadt gyorsan kikeresi a megfelelő bejegyzést.
Eredetileg RandomAccessFile segítségével oldottam meg az egész beolvasást, mivel az könnyen pozícionálható (csak nem pufferelt beolvasást csinál.) Itt javasoltátok, hogy a szabványos read... metódusokat használjam,, mert az is pozícionálható, egyúttal pufferelhető is. (((Hozzáteszem, a RAF ráadásul elég érdekesen (halasztottan) működik, ami egy kicsit megnehezítette, hogy a file véletlen módosulását az időpont ellenőrzésével figyeljem...)))
Szóval ezt a read dolgot építeném be, mert több szempontból is jobbnak tűnik. A BufferedReader wrapper osztályban meg lehet adni a puffer méretét (gyárilag 8192). Azt nem látom át, hogy nekem ilyen rövid beolvasásokkal van-e értelme a BufferedReader-t használni, és ha igen (mert gondolom, csak egy egységnyit tud fizikailag beolvasni a rendszer), akkor van-e értelme a 8192-t lecsökkenteni? És tovább: ha igen, mekkorára?
Bocs, ha előbb félreérthető voltam, nem az egész file-t akarom pufferolni, csak az előolvasást. Ill. nem akarom, csak lehet, h. célszerűbb. (((Beolvasások: ListView-ban egymás utáni rekordok, darabonként kb. 30-300 karakter, de talán egy sincs 1000 felett. Keresésnél: 10-20 db 1-5 karakter hosszú beolvasás különböző helyekről, majd a megtalált rekord a fenti módon.)))
Amit eddig a doksikban olvastam, az elég általánosan fogalmaz, és nem is magyarázza el a miérteket.
[Ja, és még egy: sqlite-tal is kipróbáltam, de ekkora méret több sebből vérzik, jobb lett a saját adatbázis] -
alacka
tag
válasz
WonderCSabo #1557 üzenetére
Beírtam de nem ismer ilyet a windowsom. Nincs a keresésnek megfelelő elem, ha meg a CMD ablakba írom,
a megadott nevet a rendszer nem ismeri fel.
(Közben sample vagy tutoriált keresek tologatós puzzle progiról.) -
alacka
tag
válasz
WonderCSabo #1555 üzenetére
Neeem! picit sem
kisugárzás, aura
Jahh linux!?
elöbb utóbb ráfanyarodok
stabilabb?
Nekem már omlott ösze a win Eclipsem, épp ma amikor az USB hibakövetést próbáltam.
Nem tudta olvasni a beállított workplace könyvtáramat, Át kellet másolnom máshova és azt beállítani. Nem is értem miért nem volt hajlandó.
Lemezhibát nem találtam. -
alacka
tag
válasz
WonderCSabo #1552 üzenetére
Gyártói drivert valóban nem kerestem, ADB devices parancsot nem tudom merre, de majd utána megnézem köszi.
Gombokra kattintgatóson túl vagyok, most képernyőre rajzolásokat (bufferelt képtöltés?) és kattintás elhúzást próbálnék. Gesztusok! Köszi a terminust, máris jobban utána tudok nézni.
Apropó! Többször tuti, hogy hozzá sem érek a képernyőhöz, csak közelítek rá és kitalálja hogy meg akartam nyomni. Hogy van ez? -
Karma
félisten
válasz
WonderCSabo #1548 üzenetére
Nekem az IntelliJ közömbös – kísérletezek vele néha-néha desktophoz –, viszont az új build rendszer nagyon elkéne. Mondjuk nem bánnám, ha az ADT is támogatná
-
fatal`
titán
válasz
WonderCSabo #1546 üzenetére
Az nagy kár lenne, mert mint a másik topicban is kifejtettem a véleményem, az android studio béta ide vagy egy fos, ahogy az alap intellij is. (Persze ez a saját véleményem.)
-
fatal`
titán
válasz
WonderCSabo #1542 üzenetére
Igen tudom, azért is használom. A 4.2 néha crashel, de azt csak az itthoni gépemen, nem igazán értem a dolgot, lehet, hogy azt a vbox verziót kéne használni, amihez fejlesztve lett. Mindegy, megvárom a következő updatet. A BlueStacks még a GM-nél is gyorsabb, csak az nem sima Android és nem is fejlesztőknek készült.
Csak nem értem, hogy az AVD átviteli tempója miért ilyen rohadt lassú, mert egyébként HAXM-mel már rendben lenne a sebesség és lehetne használni...
-
eastsider
nagyúr
válasz
WonderCSabo #1534 üzenetére
Köszönöm!
-
eastsider
nagyúr
válasz
WonderCSabo #1532 üzenetére
Köszönöm! Jól hangzik a héten neki is állok, most van időm rafekudni.
Valami java ismétlő cucc esetleg van valamerre? Vagy foglalkozzak az androiddal és felelevenednek a dolgok úgyis? -
moriak
tag
válasz
WonderCSabo #1510 üzenetére
Egy view rajzolása a text-el együtt történik vagy utólag? Bitmap decodeResource-t kell használsz benne? Bitmap.Config-ban lehet állítani tömörítést. Hardware acceleration gondolom be van állítva?! Nagyítás korlátozása? Lehet, hogy nagyon messze járok az ötleteimmel. Írj a fejleményekről.
-
moriak
tag
válasz
WonderCSabo #1502 üzenetére
Szia!
Ha esetleg nem kellett volna rá gesture hanem automatikusan akartad volna akkor a ViewFlipper passzolt volna.
u.i.: bocs később jöttem rá, hogy widgetre lett volna szükséged és nem "widget" widgetre!
-
thon73
tag
válasz
WonderCSabo #1502 üzenetére
Keress ra Jess Anders two way gridview! En meg nem probaltam, de szerintem ez pont az, amit keresel! ((bocs, kulfoldon vagyok, nem tudom a pontos cimet eloasni)) Ha megvan, beszamolnal, h. jo-e?
Udv es BUEK mindenkinek!
-
Karma
félisten
válasz
WonderCSabo #1502 üzenetére
Ha csak egy képet kéne így megjeleníteni, a TouchImageView nálunk bevált.
Bonyolultabb tartalommal nem foglalkoztam még, de SO-n van sokféle válasz, hátha van benne valami használható: [1][2]
-
blade4
aktív tag
válasz
WonderCSabo #1495 üzenetére
Ok!
Köszi!
-
pittbaba
aktív tag
válasz
WonderCSabo #1491 üzenetére
Köszönöm-köszönöm!
Bár végül máshol leltem meg a pontos szájbarágósabb megoldást, a te száladon el tudtam indulni, ezer millió köszönet!
[Itt van egy jó link a bejövő hívás blokkolás android alatt kérdéshez]
Tökéletesen működik, pont ahogy szerettem volna!
-
thon73
tag
válasz
WonderCSabo #1483 üzenetére
Megerősíteni egy-egy akciót. Van egymás mellett egy list, és a lista egyik elemét mutató űrlap. Az űrlap törlésekor rákérdez, cancel-nél rákérdez, ha a listából másik elemet választok, de az űrlap már szerkesztés alatt van, rákérdez. Ha nem töröéhető az űrlap (foreign key constraint miatt), akkor figyelmeztet. Aztán van egy file választó rész, ott még több figyelmeztetés van.
Amit nem értek: minden eseménynél a dialógus megfelelő gombja szerint megyek ugye tovább. De vannak nagyon hasonló dialógusok (are you sure pl.), ott mindegyik akciónak külön dialógust (file-t) készítek? Egyáltalán érdemes minden fragmentet külön fileba tenni, vagy egy nagy file készítse el a sok fragmetet? Szóval nem látom, milyen szerkezet a legelőnyösebb; viszont minden tutorial csak egyetlen dialogusról ír. -
thon73
tag
válasz
WonderCSabo #1476 üzenetére
Kiváló és egyszerű. Köszi! Ez jó lesz
-
thon73
tag
válasz
WonderCSabo #1474 üzenetére
Igaz, style nélkül, de ezt csináltam meg. A gond csak annyi, hogy rengeteg ilyen customview van, ezért akartam betenni alapértelmezettenk ezt a style-t, vagy az attributumokat. Még keresek tovább; ezt biztos vhogy. meg lehet csinálni...
Kieg: a rengeteg, az rengeteg ugyanolyan. Összesen csak két custom view típust csináltam, csak sok példányuk van szana-szét.
-
thon73
tag
válasz
WonderCSabo #1472 üzenetére
Köszi, sikerült színes részeredményeket elérni, és ezzel rövidtávon meg is elégszem. De alapos külső segítséget (na jó, kritikát) kaptam a család tízéves stylistjától is :-)
Még egy kérdés, amivel nem jutok dűlőre: Van egy custom view, ami egy TextView-ból származik. Annak a formázását hogyan tudom a témához hozzáadni? Konkrétan ugyanolyan külsőt szeretnék, mint az EditText, csak más színekkel. Egy ilyesmit (a viewben) készítettem, de nem sikerül a témába szerelni.
-
thon73
tag
válasz
WonderCSabo #1470 üzenetére
Az elejét olvastam, de megriasztott a két utolsó gigantikus méretű file... Ezek szerint ne kézzel álljak neki, hanem fogjak egy ilyen programot (mint pl. a holos cucc), ami legyártja a nekem tetsző színben az egészet. No, nekiállok játszani, ((eddig a külsőségekkel még nem nagyon foglalkoztam.))
Köszönöm! -
RexpecT
addikt
válasz
WonderCSabo #1467 üzenetére
Köszönöm, megnézem majd holnap.
-
RexpecT
addikt
válasz
WonderCSabo #1465 üzenetére
Igen elindul, de gombnyomásra csak a Toast üzenet jelenik meg a listában lévő elemek számával, de az összes elem kijelölése mégsem történik meg.
-
thon73
tag
válasz
WonderCSabo #1462 üzenetére
A teljes táblát egy ListView jeleníti meg, ott a join-nal összekötött táblákat egyszerűen lekérdezem, és a mezőket a megf. TextView-kba teszem. Ez gond nélkül megy.
Az egyes elemeket azonban egy űrlap jeleníti meg, ahol az egyes elemek önmagukban is megváltoztathatóak. Pl. egy könyv írójának itt az írók közül kiválaszthatok valaki mást, mielőtt magát az adatbázis-sort módosítom. A kódot egyébként megírtam, és működik is, de a linkelt adatbázisok űrlapjának kódja emiatt többször hosszabb, mint az egyetlen adatbázisra hivatkozók. A végleges megvalósításban ráadásul több ilyen "linkelt" elemet is kellene kezelnem, ezért gondoltam, hogy ezt a kódot valahogy leválasztom, akár View-ba, akár speciális új változótípus-szerű osztályba.
A félelmem pont az amire WonderCSabo rámutatott; hogy ezt túlságosan belekötöm a Fragmentbe, akkor vagy az nem tud békésen eltűnni újraindítás után, vagy a lekérdezést nem tudom megfelelően elvégezni. Pláne, ha több TextView-t kell egy id-hez kötni.
Hosszas keresés után most találtam egy megoldást (vagy legalábbis annak tűnik): ITT Megpróbálom így átkonvertálni. Meg valószínűleg lassan elolvasok egy komolyabb könyvet a software design patterns témában...
-
thon73
tag
válasz
WonderCSabo #1455 üzenetére
Igen, így képzeltem el, de egyetlen részt nem értek: "és a custom view alá berakja a saját űrlapját." Ezt hogy csinálom meg? ((Xml-ben meg is van, de nem akartam, hogy minden layout-nak hivatkoznia kelljen a közös layout-ra (meg akkor az ősfragment működése is komplikálódik.) )) Programkódból ez hogyan oldható meg? addView-vel?
-
thon73
tag
válasz
WonderCSabo #1453 üzenetére
Kipróbáltam a lehetőségeket. Végső soron a setArguments() nagyon hasonló lehetőséget ad egy Builder/Fleunt interfészhez. A hátránya, hogy a paramétereket Bundle-ban kell átadnom; előnye, hogy nem kell a mentéssel/visszatöltéssel foglalkozni, a paraméterek újraindítás után is hozzáférhetőek. A Builder/Fleunt talán könnyebben beállítható a hívó oldalon.
Lenne egy másik kérdésem is: még mindig a template alapján elkészített leszármazottak problematikájával vagyok elfoglalva - ezúttal a layout oldalán. A Fragmentek egy-egy adatbázis táblából származó elemet jelenítenek meg. A layoutban sok a közös, pl. Add, Update, Delete stb. gombok; de az űrlap szerű rész minden táblánál egyedi.
Úgy gondoltam, hogy létrehozok egy "alap" layoutot egy ViewStub-bal, amit az egyes Fragmentek programból lecserélnek a nekik megfelelő űrlap-layoutra.
Ahogy olvasgattam, egy ilyen megoldástól több helyen óvtak, merthogy nagyon rontja a performance-ot. (Én nem tudom elképzelni.) Van más lehetőség programból al-layout létrehozására? ((Mind az alap, mind az űrlap layout elég összetett.)) -
thon73
tag
válasz
WonderCSabo #1451 üzenetére
Köszi! No, ez eszembe se jutott. Csak, hogy jól értem-e:
Mivel a paraméterek között van kötelező, meg opcionális, az lenne tehát a legjobb, ha készítek egy Builder-t az első létrehozáshoz. Az összes szükséges paramétert ebben megadom a Fragment első létrehozásánál; majd az előbbi módszerrel mentem és visszatöltöm az összes - immáron belső - paramétert az újraindításnál.
Ez egyúttal azt is jelenti, hogy nem kell leszármazottakat készítenem, egyetlen osztály - többféle paraméterezéssel - megcsinálja az összes tábla listázását.
((Hm. Én csak egy könnyen bővíthető programot szerettem volna, de ez a módszer hatalmas előrelépés egy szabadon (programkód változtatás nélkül) megadható adatbázisszerkezetet használó kezelő irányában))
-
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! -
RexpecT
addikt
válasz
WonderCSabo #1448 üzenetére
Köszöntem
.
-
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!
-
thon73
tag
válasz
WonderCSabo #1440 üzenetére
Na, én pont ebbe a hibába estem bele mielõtt kérdeztem.
Illetve estem volna, ha az Eclipse engedi... -
thon73
tag
válasz
WonderCSabo #1438 üzenetére
Igen, én is így csináltam végül, köszönöm a segítséget. ((Sőt, a nagyon kevés különbözőséget mutató osztályokból készítettem egy Factory-t (ha jól értelmeztem a leírásokat); hiszen ott csak "belső" különbségek vannak, kivülről (pl. az activity felől) mindegyik csak egy típusos ListFragment.))
Hadd legyek mégis az ördög ügyvédje. Ha az osztály absztrakt, akkor csak a leszármazottakon keresztül valósulhat meg, nem? Akkor sem tudhat a gyerekeiről? Pontosabban csak absztrakt metódusokon keresztül írhatja elő, hogy mit csináljon meg a leszármazott? Teszem azt, szükségem lenne egy állandóra (pl. a LOADER_ID-re, amelyik minden leszármazottban egyedi). Vagy a leszármazott osztály nevére/példányára, mint az előbbi példában (amit egyébként tanácsodra elvetettem). Annak alapján, amit olvastam, a kérdés költői, mert úgy tűnik, nem tudhat. Csak épp nekem ez nem tűnik logikusnak. De elfogadom, hogy így van, és bocs, hogy tudatlanságból kötözködöm.
Az útmutatást pedig tényleg nagyon köszönöm, mert most nem csak működik a kód, de "szép" is.
-
thon73
tag
válasz
WonderCSabo #1435 üzenetére
Köszönöm a segítséget, és a sok olvasnivalót! Megint sokat tanultam, és legalább látom, hogy jó irányban kezdtem tapogatózni.
Helyesebb lett volna talán a teljes problémát leírni (és ez absz. android): Egy összetett adatbázisban több, egymásra hivatkozó tábla van. Class A,B,C... mindegyike egy egy táblához tartozó ListFragmentet jelent. ((És van egy hasonló, "űrlap" szerű csoport is táblánként.)) A ListFragment legtöbb része (Loader, Filter, kommunikáció az activityvel) azonos, de a táblára vonatkozó részek, egy-egy menüpont azért különbözik. Ezért gondoltam egy "közös" template szülő absztract osztályra.
Az Activity csak a Fragmentek kezelését végzi, az ő szempontjából elég annyi, hogy ez egy Fragment, a részletek (leszármazások) nem érdekesek.
Nos, ezért gondoltam arra, hogy a newInstance is közös lehetne - csak épp itt nem látom, hogy melyik al-osztályból kellene példányt készíteni.
Amit olvastam, annak alapján a newInstance mindig az al-osztályba kerül, így én is ezt a megoldást fogom követni. Elfér ott az a három sor...To SektorFlop:Örülök, ha működik! Az idő meg úgyis körbe-körbe visszajön - nekem is rengetegen/rengeteget segítettek! Üdv!
-
unknownerror
tag
válasz
WonderCSabo #1416 üzenetére
Webview-val szórakoztam egész nap, az a bajom szerintem, hogy javás ez a panorámás cucc, amit csináltak. Többféle formátumban elküldte a készítő, de egyszerűen nem tudom rávenni a cuccot, hogy menjen. Persze nagy a valószínűsége, hogy én rontok el valamit. Jah belső tárhelyről kell, hogy betöltse ezt, nem tudom, hogy számít-e valamiben.
Szinte mindig adobe flash, css, html5 nincs támogatva hibát kapom, de a telefonomon egy-két variációban betölti, viszont akkor jobbra-balra ha lépkedek, fehér lesz, meg néha egy csíkban megjelenik a kép, szóval nem az igazi.Hozzáteszem, a tárgy neve mobilkommunikáció, direkt nem szoftverfejlesztőnek szakosodtam, hanem hálózati mérnöknek, gondoltam jó lesz ez a tantárgy, erre android programozás, jól meg...szivattam magam.
Ráadásul a 26főből kb 2-en álltunk neki a programnak, ismerős sincs, aki értene ehhez -
fatal`
titán
válasz
WonderCSabo #1383 üzenetére
Jogos, nem is figyeltem, sosem használtam ezeket.
-
thon73
tag
válasz
WonderCSabo #1242 üzenetére
Nem akarom megtartani. Pont ezért kérdezem. De ez a példa szerepel magában a dokumentációban.
((Szerintem egyébként azért "tartja meg", mert a getActivity() mindig Activity-t ad vissza. Így egyszerűbb, mint minden alkalommal átalakítani az Activity-t Listener-é. Ezt csak gondolom.)) -
thon73
tag
válasz
WonderCSabo #1208 üzenetére
Igen alignolja is, sőt azt is kiolvastam, hogy először ezt kell megadni, mert különben a listView "mögé" kerül az alsó sornak. Mégis, ha pl. kifogy a lista (mert rászűrtem az elemekre) minden elugrik a... Ha kicsi a képernyő, akkor megintcsak egymás mögé csúsznak az elemek.
-
thon73
tag
válasz
WonderCSabo #1160 üzenetére
Időközben megtaláltam miért kell konstruktort készíteni DialogFragment-hez. A rendszer készít default konstruktort, de az érvényességi tartománya az osztályéval fog megegyezni. Itt viszont public konstruktor KELL. Másrészt, ha van paraméterezett konstruktor, akkor nem készül üres.
Vagyis:
public osztályban, ahol nincs konstruktor, ott nekünk sem kell készíteni.
Nem public DialogFragment-nél, vagy ha van paraméterezett konstruktor, akkor kell készíteni public jelzővel és paraméter nélkül.
Talán másnak is segít ez.De van egy másik elméleti kérdésem: Van egy Fragment (az egyszerűség kedvéért onRetainInstance(true), és ebben van egy TextView. Egy háttérszálon futó folyamat időnként kiüzen az UI szálra, és innen írja a TextView-t. Mikor lehet ezt büntetlenül megtenni? Melyik életciklusok között, vagy mit kell ellenőrizni? Vagy teljesen mindegy, akkor is írhatja, ha pl. a Fragment nem is látszik, vagy dettach-olva van? Van erre valami szabály?
Köszi! -
thon73
tag
válasz
WonderCSabo #1157 üzenetére
Köszönöm, rengeteget tanultam! Sok példát elolvastam, de a static factory method kifejezést egyik sem említette, (csak használta.) De én nem ismertem, úgyhogy köszönöm!
Még egy kérdés: Ha jól látom, akkor általában static factory method esetén érdemes "elrejteni" a konstruktort. Fragment-nél ezt nem tehetjük meg, mert újraindításnál a rendszer a public konstruktoron keresztül indítja újra a Fragment-et.
De akkor miért készít egy csomó példa expliciten public konstruktort? Az üres, public, alapértelmezett konstruktor nem készül el automatikusan az osztályhoz? Tényleg ki KELL írni, vagy ez csak didaktikailag szerepel ott? (speciel nekem külön odaírás nélkül is működött) -
Sianis
addikt
válasz
WonderCSabo #1157 üzenetére
Ezt a mondatot emelném ki rendkívül: "This Bundle will be available even if the Fragment is somehow recreated by Android.". Minden Fragmentnek kell lennie egy default konstruktornak, mert a rendszert azt fogja hívni bizonyos esetekben. És ha a fragment fel van készítve arra, hogy az argumentsből fel tudjon állni, no akkor van jól megírva a dolog.
Sianis
-
WonderCSabo
félisten
válasz
WonderCSabo #1156 üzenetére
Bocs kicsit elkapkodtam a választ és lejárt a szerkesztési idő. A linkelt cikk ugyanazt a célt szolgálja, de nem teljesen egyezik az általad mutatott mintával. Ez igazán pontosan a static factory method pattern. Ez a SO válasz szépen leírja az általános használatát. Ha picit mélyebbre akarsz menni, akkor olvasd el az Effective Java erre vonatkozó részét.
Fragmentekre levetítve pedig itt és itt magyarázat. -
moli.hu
őstag
válasz
WonderCSabo #1142 üzenetére
-
trisztan94
őstag
válasz
WonderCSabo #1142 üzenetére
"tap to restart" funkció, tehát, hogy akárhova nyom a képernyőn, azt nézze.
Végül megoldottam, nem a textúrára kellett az inputListener. Szimplán implementálni kellett az InputProcessor osztályt az osztályomban, kigenerálni a metódusokat (touchDown, mouseMoved, stb) és akkor az egész képernyőre megy a listener.Itt van ezzel kapcsolatban a SO kérdésem, amit meg is válaszoltam.
Más:
Exportálni akarom a játékot, mint apk. Kér valami Keystroke-ot. Az micsoda? Mire való?Illetve kér még több adatot, ha új keystroke-ot akarok csinálni, azok micsodák?
Alias - ez gondolom az app neve, nem?
Validity?Amikor kitöltöttem ezt az oldalt is, akkor viszont egy ilyen hibát dob:
"keytool error: java.io.IOException: Incorrect AVA format."Ez gondolom a kiválasztott keystroke formája lesz, mert nem volt kiterjesztés amikor mentettem a fájlt. MIlyen kiterjesztés kell neki?
-
Konair
csendes tag
válasz
WonderCSabo #1127 üzenetére
Köszi, elvileg most lekérdeztem a telefon orientációját, de sajnos még mindig nem tudom, hogyan számoljam ki vagy forgassam el a tengelyt. Erre esetleg lenne valakinek ötlete?
-
thon73
tag
válasz
WonderCSabo #1116 üzenetére
Mindkettőtöknek nagyon köszönöm a segítséget; továbblökött a mélypontról. Ennyire nehéz hibakeresést még soha nem csináltam, ugyanis minden próbálkozás között újra kellett indítani a telót (ami kb. fél perc).
Bocsánat, az onPause irány véletlen volt (de egy fél nap keresés után már nem találtam más okot),valóban úgy tűnt, hogy az marad ki: a hiba CSAK leállításkor jelentkezett; az eclipse debugger nem követte ilyenkor az onPause-t (mint utóbb rájöttem: hiszen leállt), a Log-ot meg én bénáztam el. De a hozzászólásotok után végig belogoltam, és akkor kiderült, hogy onPause van, csak ami benne lenne - no az nincs.
A tanulság kedvéért a hiba (egyébként utólag pofon egyszerű, de csapdás):
A program egy gigantikus RandomAccessFile-t ír/olvas az sd-n. (Ennyiben a felhasználói adatok azonnal kikerülnek.)
Az onPause részben (többek között) azt kell elmenteni, hogy valaki nem piszkál-e bele a RAF file-ba, amíg távol vagyunk. Ehhez mentem (név mellett) a méretét (File.length()) és az utolsó módosítás időpontját (File.lastModified()). Újraindításkor ezt ellenőrzi.
Ez a módszer prímán működik, amíg ki nem kapcsoljuk a telót.A gondot az jelentette, hogy a RandomAccessFile NEM szinkron írást csinál, sőt a close() után sem írja ki az adatokat! (Ezt bizonyára mindenki tudja, valószínűleg én is, csak nem gondoltam rá.) Véletlenül "rw" módot adtam meg az "rws" helyett.
Az érdekesség, hogy több hetes próbálgatás alatt is a nem-szinkron kiírás MINDIG bekövetkezett az onPause előtt, ha szabványosan léptem ki. Ha a telefont kikapcsoltam akkor SOHA nem következett be az aszinkron írás az onPause előtt (ezt két napja tudom).
((Megjegyzem, sehol nem találtam részletes dokumentációt arról, hogy pontosan mi és milyen sorrendben történik a kikapcsoláskor.))Van még egy probléma, ami komoly fejtörésre adhat okot: RandomAccessFile "rws" írásakor SEM stimmel a lastModified() érték a visszaolvasáskor!! Az esetek 90%-ban pontosan EGY másodperc (1000 ms) különbség van a két külön alkalommal visszaolvasott érték között!! Mivel a lastModified() érték MINDIG három 0-val végződik (vagyis nem ms, hanem másodperc pontos) valószínűleg a kerekítésnél lehet gond; de ezt nem tudom, csak gondolom. Hivatkozást nem találtam SGS2 és Note gépeken próbáltam.
Köszönöm, hogy kipróbáltátok, teljesen fals útról térítettek vissza; így jópár további óra alatt meglett a hiba!
-
negyedes
addikt
válasz
WonderCSabo #1110 üzenetére
Koszi megvan.
Azt hogy tudnam elerni hogy az email appom egy resze mindig fusson es 10 percenkent megnezne hogy jott-t uj email attol fuggetlenul hogy az app fut vagy nem.
-
fatal`
titán
válasz
WonderCSabo #1096 üzenetére
Szerintem sokkal inkább a remek adótörvényeink az oka ennek.
Egyébként viszonylag kevés országból lehet fizetős appot publikálni.
-
PandaMonium
őstag
válasz
WonderCSabo #1096 üzenetére
Ez sajnos nem mentség arra a nem éppen maroknyi emberre nézve aki szeretne ilyesmiből élni (köztük én is). Persze, lehet, hogy csak pár százan lennénk ilyen magyarok és ez a Google-nek nem nagy szám, de nekünk már elég komoly probléma, 1 platformal kevesebb amire fejleszthetünk. Ha meg iOS-re akarok fejleszteni akkor mindenképp Apple OSX (laptop, iMac vagy Mac Mini) cuccomnak kell lennie (vagy Hackintosh-ozni, ami elég felejtős), mert hivatalosan ugye csak arról lehet iOS-re publikálni. Hihetetlen, hogy ezek a mobil platformok milyen feltételekkel léteznek...
Marad a Steam, ahol a Greenlight-on már utcahossznyi tumultus van, az Xbox Live és még esetlegesen a Playstation Network ha ki tudja imádkozni az ember a Sony-ból, hogy regisztrált fejlesztő legyen és egyáltalán hozzáférést kapjon az SDK-hoz.
Ha már itt lyukadtam ki megkérdezem: Nem tudjátok, hogy az OUYA marketjére lehet-e fizetős cuccokat felrakni M.o. -ról? Mert ugye elvileg az is Android, de közben van saját marketplace-e. -
szabi__memo
nagyúr
válasz
WonderCSabo #1096 üzenetére
Nem a google-t nem erdekli, hanem senkit. Es nem csak nalunk van ez hanem orszagok tucatjaiban. Es nincs fizetos ceg aki piacot nyujtana. Ne ez a dobbenet.
-
negyedes
addikt
válasz
WonderCSabo #1040 üzenetére
koszi szepen, vegul ijra irtam a queryt. de belefutottam egy ujabb bajba amit eddig nem vettem eszre:
adott a kovetkezo kod:
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View inbox_list,
int position, long id) {
final String messageInbox = "inbox";
TextView send = (TextView) findViewById(R.id.sender);
TextView date = (TextView) findViewById(R.id.date);
TextView subject = (TextView) findViewById(R.id.subject);
String messageSender = send.getText().toString();
String messageDate = date.getText().toString();
String messageSubject = subject.getText().toString();
intent.putExtra(EXTRA_MESSAGE_SENDER, messageSender);
intent.putExtra(EXTRA_MESSAGE_DATE, messageDate);
intent.putExtra(EXTRA_MESSAGE_SUBJECT, messageSubject);
intent.putExtra(EXTRA_MESSAGE_INBOX, messageInbox);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
});elmeletileg ez megnezni az aktualis click poziciojat es kivalasztja a textview-bol az ertekeket, de nekem allandoan az elso erteket adja meg.
hogy tudnam azt megcsinalni hogy minden uj clicknel a listaban a normalis ertekek keruljenek az extra-ba?
-
trisztan94
őstag
válasz
WonderCSabo #1029 üzenetére
Köszönöm szépen!
-
trisztan94
őstag
válasz
WonderCSabo #1022 üzenetére
Ja csak ennyi?
És akkor tudom használni? (gondolom clean kell, nem?)
-
thon73
tag
válasz
WonderCSabo #1024 üzenetére
Köszi, ez jó ötlet. De kicsit félreérthető voltam, én nem az Activity-n BELÜL szeretném megtudni, hogy eltűnt, hanem KÍVÜLRŐL szeretném látni, hogy most már eltűnt/újraindult. Csak olyan ötleteim vannak, hogy megnézem a futó task-ok között stb., de nincs erre valami fejlettebb fejlesztői megoldás?
Pl. az onActivityResult más módon (az on...-ok között más sorrendben) kerül meghívásra a két esetben; és szerettem volna kicsit körüljárni, hogy mi történik. De csak nagyon körülményes megoldásokat találtam. -
caindwan
aktív tag
válasz
WonderCSabo #998 üzenetére
A kódrész 2 spinner item kiválasztásával egy képet jelenít meg. Legalábbis ezt kellene csinálnia
-
Karma
félisten
válasz
WonderCSabo #967 üzenetére
Olyan nincs, hogy nem csinál semmit*, maximum tenni kell hogy látszódjon. Debuggerrel a kérdéses résznél akkor is azonnal világítana az exception, ha azt lenyeleti egy üres try-catch-csel (ami gondolom pont így van).
*: egy ilyen komplexitású kód legalábbis
-
Ivitz
tag
válasz
WonderCSabo #964 üzenetére
igen engedélyezve van és csak átdugtam a készüléket és semmi
-
trisztan94
őstag
válasz
WonderCSabo #961 üzenetére
Köszönöm szépen!
-
Karma
félisten
válasz
WonderCSabo #903 üzenetére
Szerintem adatbáziskezelésből itt nem sokat láttunk, a dolognak már sokkal hamarabb véres a torka. Az életciklus, meg hogy ki hivatkozik kire elég fontos Androidon, különösen mert ilyen lábbalhajtós.
Ezzel együtt egyetértek, egy jó androidos mintából jobb kiindulni, mint egy desktopJava gondolatvilágból.
-
negyedes
addikt
válasz
WonderCSabo #900 üzenetére
igen igy van, de akkor kezdi elorol a db miatt mert megint statikusrol hivatkozok nem statikusra, a this mar nem jo itt.
-
negyedes
addikt
válasz
WonderCSabo #897 üzenetére
azert null mert sehogy nem tudom atadni a stringet. a names statikus csak epp azt nem tudom hogy hogyan hivjam meg azt a fuggvenyt ami a neveket kiolvassa a db-bol
-
negyedes
addikt
válasz
WonderCSabo #895 üzenetére
setListAdapter(new ArrayAdapter<String>(getActivity(), layout,PatientData.Names)); a names-el van baja mert azt egy masok classbol veszem.
-
negyedes
addikt
válasz
WonderCSabo #893 üzenetére
hat nem, tudom mit masoljak be.
ez a main:
public class MainActivity extends FragmentActivity implements
PatientFrag.OnPatientSelect {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
AppFolders foldercheck = new AppFolders();
foldercheck.updateExternalStorageState();
foldercheck.updateFolders();
DatabaseHandler db = new DatabaseHandler(this);
db.addPatient(new Patient("Noname1", "10.12.1978", "35", "/sdcard/dicomview/patient/0.dcm" ));
Log.d("Insert: ", "Inserting ..");
setContentView(R.layout.activity_main);
setContentView(R.layout.patient_layout);
// testing if the load is for the first time or a resume
if (findViewById(R.id.patient_list) != null) {
if (savedInstanceState != null) {
return;
}
}
// creating a first instance(pationt)
PatientFrag patientFrag = new PatientFrag();
patientFrag.setArguments(getIntent().getExtras());
// puts the patient_list fragment to the fragmentlayout
getSupportFragmentManager().beginTransaction()
.add(R.id.patient_list, patientFrag).commit();
}
public void patientSelect(int patientPos) {
// find the image fragment
ImageFrag imageFrag = (ImageFrag) getSupportFragmentManager()
.findFragmentById(R.id.image_view);
// verify iff image is opened
if (imageFrag != null) {
// if it is update it
imageFrag.updateImage(patientPos);
} else {
ImageFrag newFrag = new ImageFrag();
Bundle args = new Bundle();
args.putInt(ImageFrag.ARG_POSITION, patientPos);
newFrag.setArguments(args);
FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction();
transaction.replace(R.id.patient_list, newFrag);
transaction.addToBackStack(null);
transaction.commit();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} -
WonderCSabo
félisten
válasz
WonderCSabo #874 üzenetére
Megnéztem most újra, én bénáztam el, jó a doksi.
-
thon73
tag
válasz
WonderCSabo #862 üzenetére
A jelenlegi 2x7 mega. Nincsenek benne a formázások, részletek stb.
Sokat gondolkodtam a tároláson, de mivel az adatok nem változnak, ezért tűnt ez a legcélszerűbbnek. Ha adatkezelés is cél lenne, sql-ben csinálnám.
A fenti módszer egyébként így működik, csak az osztály konstruktorába szerettem volna belebűvölni. Ja, és fontos előny, hogy egy keresésnél max. kb. 100 byte beolvasás kell! -
thon73
tag
válasz
WonderCSabo #852 üzenetére
Egy RandomAccessFile objektumra lenne szükségem, több példányban. Vagyis: ugyanazt a file-t szeretném elérni, de különböző pontokon. A RandomAccessFile konstruktora vagy egy File vagy egy filenév paramétert kér. Eddig úgy oldottam meg, hogy ugyanahhoz a File-hoz több RAF-ot gyártottam le. Most viszont ezek az értékek nem állnak rendelkezésemre (vagyis külön kellene tárolnom őket), ezért örültem meg a clone-nak.
Semmi más módszert nem találtam arra, hogy a RAF objektumot megduplázzam - a belső adataihoz (értelemszerűen) nem férek hozzá. Függetlenül az én konkrét példámtól, ez más objektumokra is igaz.
Nincs véletlenül ötleted arra, milyen uton lehet/illik ezt megoldani? Vagy tároljam el mindig a file nevét, és akkor már tudok olyan osztályt bővíteni, ami implementálhatja a Clonable interface-t.De ez nem tűnik túl szép megoldásnak. Köszi!
-
thon73
tag
válasz
WonderCSabo #852 üzenetére
Köszi! Jogos. Az Inherited Methods from java.lang.Object alatt szerepel, és a doksi egy szóval nem említi, hogy ez az osztály ezt nem valósítaná meg. Miután most a címét is tüzetesen elolvastam, valóban ott áll, hogy protected. Pedig olyan egyszerűnek tűnt...
A választ nagyon köszönöm, nem töröm rajta tovább a fejemet -
RexpecT
addikt
válasz
WonderCSabo #844 üzenetére
Köszönöm
.
-
thon73
tag
válasz
WonderCSabo #823 üzenetére
Hát pont ez az! Miért szükséges, ha csak a Reader-t (tehát csak olvasást) szinkronizál, és közben a Writer-t (írás, de nem csak másik példány, hanem osztály) nem szinkronizálja? Nem hagyhatnám ki egy az egyben?
-
Sianis
addikt
válasz
WonderCSabo #783 üzenetére
Feltételeztem, hogy az ASyncTaskot a főszálról indítja. És annak az onPostExecute része szintén ott fut. Illetve nem is feltétlenül lényeges hol fut, mivel egy static változó, jelen esetben boolean értékét bárhonnan meg tudja változtatni.
Sianis
-
pittbaba
aktív tag
válasz
WonderCSabo #778 üzenetére
Köszönöm!
A httpclient végül jobb megoldásnak bizonyult, mert jobban tudom kezelni a különböző hibákat. Egyébként igen timeout, illetve wifiről való leszakadozás okozta a kivételeket.
Most feltettem egy webservert a telefonra, így biztos nincs wifiről szakadozásÚjabb kérdésem:
Async taskban szeretnék egy boolean-t ha feltételek rendben vannak átbillenteni igaz-ra, majd 6mp múlva visszatenni false-ra. Async taskban ha megjön a JSON eredmény rendben, akkor kell, hogy a változó 6mp-ig true legyen. Thread.sleep(6000); nem jó, az utána következő parancsok is azonnal futnak le, nem várakozás után. Ez miért lehet, illetve mi a megoldás? A timerre gondoltam, h 6mp-ként megnézi az értékét és ha true, akkor átbillenti false-ra, viszont ha a timer éppen a 4. mp-nél jár, amikor átbillen true-ra a változó, majd 2mp múlva teszi false-ra az nem jó nekem. Hogy szokás ezt megoldani? -
fatal`
titán
válasz
WonderCSabo #736 üzenetére
A natív appoknak is javaban kell írni egy részét
-
SektorFlop
aktív tag
válasz
WonderCSabo #689 üzenetére
Nekem nem indul el
-
SektorFlop
aktív tag
válasz
WonderCSabo #685 üzenetére
Kipróbálom én is.
-
fatal`
titán
válasz
WonderCSabo #687 üzenetére
Vagy csak támogatja a pluginjeit? Mintha ilyesmi rémlene.
De az is lehet, hogy teljes képzavar
Amúgy mi a gondod evvel a (totál beta) cuccal?
-
fatal`
titán
válasz
WonderCSabo #685 üzenetére
Hali!
Még nem próbáltam, már megszoktam az eclipset. Hogy működik? Library projecteket kezeli? GIT support van?
Ha jól látom IntelliJ IDEA-ra épül, ami meg, ha jól tudom, akkor az Eclipsere, szóval olyan nagy varázslat ezekszerint nincs. Ellenben érdekelne, hogy mennyire herélték ki.
-
Sianis
addikt
válasz
WonderCSabo #603 üzenetére
Nem kell az ActionBarSherlock miatt plusz libet belehúzni. Illetve még ott van a Holo Everywhere. Valamint van egy olyan titkos vágyam, hogy megnézem, csak 4.0 felé lőtt appnak van-e esélye elterjedni.
Sianis
-
CoolBoy323
nagyúr
válasz
WonderCSabo #472 üzenetére
én magyarul szeretném
-
CoolBoy323
nagyúr
válasz
WonderCSabo #468 üzenetére
PHP-t ismerem úgy nagyon-nagy vonalakba...
Akkor kezdjek Java-t tanulni? Autodidakta módon lehetséges?
-
choco01
addikt
válasz
WonderCSabo #461 üzenetére
Köszönöm!
-
sztanozs
veterán
válasz
WonderCSabo #436 üzenetére
Androidon nem használtam még - de pc-n egy 700 MB-os adatbázis (4 tábla, egy 3,5 millió rekorddal és kb 60 mezővel, a többi ~100.000 rekorddal és 5 - 20 mezővel) szinte azonnal ad eredményt bármilyen összetett lekérésre, ha a indexelt mezők mentén van lekérdezve. Persze lehet, hogy androidra sz@rul van az sqlite optimalizálva...
-
pittbaba
aktív tag
válasz
WonderCSabo #433 üzenetére
Jogos, köszönöm!
-
fatal`
titán
válasz
WonderCSabo #392 üzenetére
Ezt még nem, köszi. Nem néztem ki belőlük, hogy van rendes tutorial, mert az oldal maga borzasztó gány
Aztán lehet, hogy ebből nem lesz semmi, majd meglátom.
-
fatal`
titán
válasz
WonderCSabo #378 üzenetére
Én azt hittem futásidőben szeretné. Nem tudom miből gondoltam
Új hozzászólás Aktív témák
Hirdetés
- PlayStation 5
- Milyen asztali (teljes vagy fél-) gépet vegyek?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Kerékpárosok, bringások ide!
- Formula-1
- Okosóra és okoskiegészítő topik
- One otthoni szolgáltatások (TV, internet, telefon)
- Autós topik látogatók beszélgetős, offolós topikja
- Total Commander
- Sweet.tv - internetes TV
- További aktív témák...
- Egyedi PC összeszerelés Tökéletes színséma, prémium kábelmenedzsment, alkatrészfestés!
- Lenovo Ideapad 330S-15IKB / I5 /20GB RAM / GTX 1050 / M.2 SSD
- Gamer PC - i3 12100f, RTX 3070 és 16gb DDR5 + GARANCIA
- Lenovo ThinkPad T14 Gen 5 Ultra-I7/64GB/512SSD/Érintőképernyő/garancia
- Lenovo ThinkPad T14 G3 I5-1245U/32GB/1TBSSD/Érintőképernyő/Garanciás.
- REFURBISHED - HP USB-C Dock G4 docking station (L13899-001)
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5800X 32/64GB RAM RX 7700 XT 12GB GAMER PC termékbeszámítással
- 129 - Lenovo Legion Pro 7 (16ARX8H) - AMD Ryzen 9 7945HX, RTX 4080
- ÁRGARANCIA! Épített KomPhone i5 14600KF 32/64GB RAM RTX 5070 12GB GAMER PC termékbeszámítással
- Lenovo ThinkPad T14 3 Gen 16/256GB SSD, Újszerű, 1 Év Garanciával
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: PC Trade Systems Kft.
Város: Szeged