Új hozzászólás Aktív témák
-
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.
Három dolog biztos az életben: az adó, a halál és az adatvesztés. - Baráth Gábor
-
Karma
félisten
válasz negyedes #899 üzenetére
Már megint, a PatientData ne legyen Context! Semmi köze hozzá.
Az előzményeket most kezdem olvasni...Mein Gott. A staticet ebben a környezetben vagy felejtsd el teljesen, vagy csinálj egy saját Application osztály, aminek az onCreate metódusában inicializálod a PatientData statikus mezőit. Ugyanis ez a leghamarabbi pillanat, amikor application contextet tudsz szerezni, ami az SQLite-nak kell.
(WonderCsabo valamiért ezzel a dependenciával nem számolt.)
[ Szerkesztve ]
“All nothings are not equal.”
-
WonderCSabo
félisten
Igen, kapkodott választ adtam, fel se merült bennem, hogy db-nek így akar átadni negyedes, nem néztem meg a fv-t rendesen.
Egyébként én azt mondom, hogy vannak a db kezelésre androidon nagyon jó minták, pl. Pro Android könyvekben leírva, ha azokat használjátok fel akkor ilyen torzszülöttek nem lesznek egy bizonyos pontig. De sztem a sima androidos doksiban és van erre értelmes példakód, amit alapesetben felhasználva simán meg lehet csinálna az egyszerű db kezelő osztályt.
[ Szerkesztve ]
-
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.
“All nothings are not equal.”
-
negyedes
addikt
hat ez a db nekem nem megy.... meg az android programozas se, de muszaj most megcsinaljam ebben.
kivettem a context-et de most akkor hogy a fenebe hivatkozzak a db-re mikor egy uj db objektumot hozok letre?
a db konstruktor igy nez ki:
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}androidos peldabol indultam ki, de nekem meg ez is magas.
Három dolog biztos az életben: az adó, a halál és az adatvesztés. - Baráth Gábor
-
Karma
félisten
válasz negyedes #906 üzenetére
Lassíts egy kicsit. Egy iPhone-nyi képernyőn nem akartam regényt írni, ezért utalgattam csak a követendő irányra, de akkor most konkrétabban.
Kezdjük ott, hogy gondold át, hogy az alkalmazásod mit csinál, milyen képernyői vannak (jó közelítéssel ezek az Activityjeid); és ezekből melyik fér hozzá a DB-hez, mit csinál vele és mennyi ideig. Ha ezt a topikba leírod, bár nem kötelező, még hasznos is lehet. Ez azért kell, mert ez alapján tudod eldönteni, hogy ki legyen az adatbázis gazdája. Mint pár héttel ezelőtt említettem, ez különösen fontos - ezért is vár Contextet első paraméterként.
Ideális esetben, mondhatni alapelvként, a DB-hez csak nagyon ritkán fordulj, és sose fuss több kört mint szükséges, mert egyszerűen lassú.
Két primitív stratégiát felvázolok addig is, amíg gondolkodsz rajta.
1) (a kettőből ajánlott) Amelyik Activity adatbázist használ, az kezeli magának. Az onCreate metódusban hozod létre a DatabaseHandlert, contextként pedig this formájában az Activity-t adod meg. OnDestroyban meg bezárod. A kód többi részében pedig feltételezed, hogy a DB objektum nyitva van, és használod békésen.
2) Az alkalmazásod ugyebár több Activityből áll össze, de az Application objektum közös. Az Application osztály is Context, bár korlátozottabb jogokkal rendelkezik (nem nyúlhat a UI-hoz vagy az aktív Activity-hez például). Az adatbázishoz viszont pont elég.
Ezáltal meg tudod oldani azt, hogy induláskor egyszer kinyitod a DB-t (Application onCreate metódusban, a context ismét this), és majd a végén bezárod. Közben meg az Application egy tagváltozójában tárolod a handlert.
Van sok gány megoldás arra, hogy hogyan teszed elérhetővé az Activity-k felé: castolhatod az getApplicationContext() eredményét, csinálhatsz static mezőket, követheted a singleton mintát... Vagy használhatsz IoC jellegű logikát is.A lényeg az, hogy legyen meg a teljes életciklus fejben.
[ Szerkesztve ]
“All nothings are not equal.”
-
negyedes
addikt
koszonom a felvilagositast, akkor marad az elso variaco az meg menni is fog.
sajnos 3 eve most latok elsore java programo kodot es raadasul android app-ot irok, lehet kicsit tulvalaltam magam. nagyon sokat felejtettem
Három dolog biztos az életben: az adó, a halál és az adatvesztés. - Baráth Gábor
-
sztanozs
veterán
-
sztanozs
veterán
válasz negyedes #915 üzenetére
Attól még, hogy egy mező statikus, még nem tartja meg az értékét az életcikluson kívül - kicsit hasonlít a webfejlesztésre a dolog: minden oldalbetöltés külön egyed és az egyik egyedben elmentett statikus mező nem "öröklődik át" egy másik meghívásban létrejött egyedbe. Ezért van a Session - egy plusz réteg az oldalak alatt, hogy az egyedi meghívásokból egy nagyobb életciklust alakítson ki, azzal, hogy a logikailag összetartozó (Session ID alapján) lekérésekhez a közös információkat tárolja.
Ezt a célt szolgálja az androidnál a Context is:
It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc.úMondjuk azt nem értem, hogy miért nem tudod a Context-et átadni a függvénynek, hiszen eleve az Activity is a Context-ből öröklődik... Pont mint az Application vagy a Service...
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
sztanozs
veterán
válasz negyedes #917 üzenetére
MIért kell neked statikus metódus? Miért kellene annak egy példányosított metódusra hivatkoznia? Mi értelme van ennek egyáltalán?
Amúgy elméletben ez viszonylag egyszerű - de hát az elmélet és a gyakorlat között csak elméletileg nincs különbség...
YourObject _self;
...
// init _self in a method
static Object someStaticFunction(Object varForInstance)
{
return _self.someInstanceFunction(varForInstance);
}
Object someInstanceFunction(Object varForInstance)
{
//do work
}A legnagyobb probléma az, hogy hogyan adsz értéket a _self változónak...
Inkább vázold fel nagyvonalakban, hogy mit szeretnél ezzel elérni és majd meglátjuk, hogy esetleg hol hibás a megközelítésed, ami miatt nem akar összejönni a dolog.
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
Proudmoore
csendes tag
Üdv!
Olyan kérdésem lenne hogy Magyarországról lehet-e feltölteni fizetős alkalmazást? Ha van külföldi (ausztriai) bankszámlaszám akkor azzal megoldható-e? A google azt ellenőrzi hogy magyarországi állampolgár vagyok-e vagy azt hogy milyen nemzetiségű számlám van? Ezen kívül bármilyen módszer érdekelne. Előre is köszönöm a válaszokat.
-
fatal`
titán
válasz Proudmoore #919 üzenetére
Nem lehet, maximum külső cég segítségével. Semmi köze a bankszámlához, az acc országát nézi, illetve adószámot kér.
-
negyedes
addikt
válasz sztanozs #918 üzenetére
fragmentekkel dolgozom, az egyikben vannak nevek es a masikban kepek. a neveket tartalmazo string statikus es statikusan van ra hivatkozva a fragment letrehozasaban.
setListAdapter(new ArrayAdapter<String>(getActivity(), layout,
DatabaseHandler.onLoad()));a problema az onLoad()-ban van mert azt is statikusra kellene allitani de ha mar statikus akkor nem lehet hasznalni a thist. ennel az objektum letrehozasaban:
SQLiteDatabase db = this.getWritableDatabase();
[ Szerkesztve ]
Három dolog biztos az életben: az adó, a halál és az adatvesztés. - Baráth Gábor
-
sztanozs
veterán
-
negyedes
addikt
válasz sztanozs #922 üzenetére
az onLoad fugveny kiveszi az adatbazisbol a neveket amiket egy listbana szervez es az fog megjeleni a kepernyon. az onload-ot en irtam.....
de mivel a fragmentben statikus hivas van ezert statikus fugveny kell neki.
Három dolog biztos az életben: az adó, a halál és az adatvesztés. - Baráth Gábor
-
sztanozs
veterán
válasz negyedes #923 üzenetére
Miért kellene egy statikus tagot statikus fv-en keresztül elérni?
Egy statikus tagot bárhonnan el lehet érni (ha publikus a tag), csak pédányt nem lehet statikusból elérni, csak akkor, ha van rá "hivatkozásod"... Lehet, hogy kicsit fel kellene frissítened az OOP tudásod (vagy én nem értettem meg, mit szeretnél csinálni).[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
negyedes
addikt
válasz sztanozs #924 üzenetére
SQLiteDatabase db = this.getWritableDatabase(); - ezt a sort mivel tudnal helyetesiteni?mivel statikus minden, ebben az esetben a this nem mukodik es egy ilyen errort kapok: "Cannot use this in a static context"
[ Szerkesztve ]
Három dolog biztos az életben: az adó, a halál és az adatvesztés. - Baráth Gábor
-
sztanozs
veterán
válasz negyedes #925 üzenetére
Ezt honnan hívod meg?
Legalább a kontextust (az osztályt és a függvényt) jó volna látni, hogy tudjam mit lehetne csinálnod...Meg azt is jó volna látni, honnan akarod meghívni az az érintett fügvényt.
[ Szerkesztve ]
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
WonderCSabo
félisten
Sziasztok!
Használja vki közületek a Loader-eket SQLite adatbázissal? Alaposan meggyűlt a bajom egy ilyen problémával, SO-n feltettem a kérdést, aki esetleg használt már ilyesmit, légyszíves nézzen már rá.
Köszönöm! -
negyedes
addikt
Ujabb hulye kerdes:
ha egy email klienst szeretnek csinalni a mail-ket hogy a legjobb tarolni? Adatbazis, file vagy hogy?
Három dolog biztos az életben: az adó, a halál és az adatvesztés. - Baráth Gábor
-
Karma
félisten
válasz negyedes #928 üzenetére
Szerintem adatbázis, mert elég jól definiálható az emailekhez tartozó séma, és eléggé rekord-alapú. Bár az se baj ha átgondolod pár soron, akarod-e újra feltalálni a kereket...
Széljegyzet és más téma: ha legközelebb adatbázisoznom kell, a persistence elnevezésű libet lehet felpróbálom. Valaki járt már el hasonlóan? Vagy valami mást használt ORM-hez?
“All nothings are not equal.”
-
hatasu
csendes tag
Sziasztok!
Nekem a debuggolással kapcsolatban lenne egy olyan kérdésem, hogy miként lehetséges?
Programozóként dolgozok, de androiddal csak nemrég kezdtem el komolyabban ismerkedni egy megkeresés kapcsán. Egy google maps-et használó programot készítek, build szépen lefut, a telefonon is elindul, viszont a térkép maga nem jelenítődik meg. Jelzi hol vagyok, illetve a többi megjelölt hely is rendben van. Hogyan jöhetek rá legkönnyebben, hogy hol bukik el az egész? A google leírását használtam, ezért sem tudom mi lehet a gond.Köszönöm előre is: hatasu
Mindenes | Bármikor le tudok állni a szerencsejátékkal! Akarsz fogadni rá?
-
Karma
félisten
Amikor a telefonon bekapcsolod az USB debugging módot (fejlesztői eszközök alatt), és összekötöd kábellel a gépeddel, az Eclipse-ben a "Logcat" elnevezésű ablakban (legegyszerűbben a DDMS perspektíván) láthatod az összes üzenetet, amit a telefonon futó alkalmazások dobálnak.
Ezt le tudod szűrni a saját alkalmazásodra package név alapján.
Az üzenetek között valószínűleg látni fogod, hogy a Google Maps API authentikációs hibát dob, mert rossz a kulcs amivel aláírtad az APK-t, vagy a kulcs amit megadtál.
“All nothings are not equal.”
-
Elektrosokk
addikt
sziasztok.
motorola xoom. felteltettem az eos 4.0 romot. minden rendben ment. de egy program jelzett egy updatet , leszedtem a zip file-t. és dalvik meg chace vipe után feltettem. utána nem bootolt be a xoom. most bebootol és azt írja ki hogy "starting fastboot protocol support. de ennyi. ötletek ?bocsi ha rossz helyen vagyok. de talán tudtok segíteni.
"Bárcsak elviselnétek tőlem egy kis esztelenséget, sőt viseljetek el engem is." Szabadságot Aweriotnak! ️
-
fatal`
titán
-
heihachi
addikt
En sem tudok megbirkozni vele
http://prohardver.hu/tema/android/hsz_868-868.html[ Szerkesztve ]
"Lehet a Shift 2 már realisztikusabb mint a valóság" by NOD
-
Denyboygod
csendes tag
Sziasztok, mennyit fizetnek egy android programozónak? Gondolom a program mértékétől is függ, de úgy nagyjából mi az "havi" fizetés
Bocs az offért, csak saját vállalkozáshoz szeretnék fejlesztőket, és ezért érdeklődöm.
-
trisztan94
őstag
válasz Denyboygod #935 üzenetére
Én, mint junior programozó 250-300k alatt nem állnék veled szóba De mondjuk én mindig megkérem az áram.
ON:
Sziasztok!
Belekezdtem az Android programozásba, eddig minden szép és jó.
Ubuntu alatt vagyok, fenn volt már nekem korábban is JAVA miatt az Eclipse, ezért nem az eclipse-s sdk-t szedtem le hanem az ADT-t meg a SDK Tools-t raktam bele a már meglévő telepítésembe. Minden tök jól működik, egy problémám van csak. Futtatni szeretném saját telcsimen az alkalmazást, rámegyek az eclipse-ben a Run gombra. Ott elvileg kéne, hogy felajánlja az Android Application-t, mint lehetőség, de csak az van, hogy "(none applicable)""Open one of your project's files and click Run from the toolbar.
In the Run as window that appears, select Android Application and click OK.Mit kő' ezzel csinálni?
Ápdét:
se az "android", se az "adb", se az "ant build" parancsot nem ismeri a terminálom. Mit csinálok rosszul?[ Szerkesztve ]
https://heureka-kreativ.hu
-
fatal`
titán
válasz trisztan94 #936 üzenetére
Nem vagyok linuxos de gondolom az sdk platform-tools könyvtárának benne kéne lennie a PATH változóban, hogy ismerje a parancsokan.
Ezenkívül a telefonodon be van kapcsolva az USB hibakeresés?
-
nagyúr
válasz trisztan94 #936 üzenetére
A bundle verziót töltsd le az eclipse-ből, ott lesz apk támogatás.
[link]
Én teljesen láma vagyok ebben, csak egy helló-wörld-öt tudtam csinálni, de azzal a bundle kiadással apk lett a vége.Selenia 5w-40 motorolaj eladó! Na meg 4db Ford Kuga TPMS szenzor, 12k-ért
-
Karma
félisten
válasz trisztan94 #936 üzenetére
Jobbkattolj az alkalmazásprojekteden a Package Explorerben, és ott válaszd a Run as...-t és az Android Applicationt. Akkor megcsinálja a launch configot automatikusan.
Ha nem akarná, akkor File menü Export, és ott tudsz APK-t létrehozni kézzel.
A parancssoros eszközökhöz tényleg a PATH-t kéne beállítani jól, az SDK-d tools, platform-tools mappáinak mindenképp benne kell lennie.
“All nothings are not equal.”
-
trisztan94
őstag
Köszönöm szépen mindhármotoknak, végül leszedtem a bundle-t, nagyon ótvar volt így
A PATH-ba tényleg bele kelett rakni a platform tools-ot és a sdk tools-ot. Nem írta a google oldala
https://heureka-kreativ.hu
-
Karma
félisten
válasz trisztan94 #940 üzenetére
Nem is kötelező parancssorból fordítanod
“All nothings are not equal.”
-
fatal`
titán
válasz trisztan94 #942 üzenetére
USB hibakeresés bekapcsolva? Ismeretlen források bepipálva?
-
negyedes
addikt
List<Email> listEmail = dbHelper.getPatientAll();
try {
for (Object cn : listEmail) {
String from = ((Email) cn).getSender();
String subject = ((Email) cn).getSubject();
String date = ((Email) cn).getDate();
HashMap<String, String> map = new HashMap<String, String>();
map.put(TAG_SENDER, from);
map.put(TAG_SUBJECT, subject);
map.put(TAG_DATE, date);
inboxList.add(map);
}
} catch(Exception e) {
e.printStackTrace();
}Ez lenne egy listabol olvasas, ami vegtelen ciklusba kerul. Az adatokat is rosszul olvassa ki. Hol hibazom el?
Három dolog biztos az életben: az adó, a halál és az adatvesztés. - Baráth Gábor
-
negyedes
addikt
-
Karma
félisten
válasz trisztan94 #945 üzenetére
A DDMS perspektíván látod az eszközt? Logcatat ír?
Ha nem, a kerneled látja az ADB imterfészt? Bedugás után érdemes lehet megnézni a dmesg kimenetét, hogy mit lát és mihez kezd vele.Linux alatt csak a szopás van az ilyesmivel... Nem írt semmit/mindent megcsináltál, amit a Google oldala írt? Régen volt, hogy az udev konfigurációjába bele kellett piszkolni pl.
“All nothings are not equal.”
-
RexpecT
addikt
Lenne egy olyan gondom, hogy van két Activytim, az elsőből hívom a másodikat ezzel a kóddal:
Intent intent = new Intent(context,GpsActivity.class);
intent.putExtra("giveMeTheResult", 1);
startActivityForResult(intent, 1);
overridePendingTransition(R.anim.push_left_in,R.anim.push_left_out);Ez megy is szépen, látszik az átmenet a két Activty között ahogy kell.
A másik Activytiben, pedig így adok vissza adatot az hívónak:Intent intent = new Intent();
intent.putExtra(EXTRA_LATI, lati);
intent.putExtra(EXTRA_LONGI, longi);
setResult(Activity.RESULT_OK, intent);
finish();
overridePendingTransition(R.anim.push_right_in,R.anim.push_right_out);Itt viszont van amikor szépen megy az animáció, van amikor meg ilyen fekete felvillanásszerűséget tapasztalok. Van valakinek ötlete hogy miért lehet?
-
SektorFlop
aktív tag
válasz trisztan94 #945 üzenetére
DDMS-ben látod a telót? Ha esetleg a géped nem látja a telót és az a baj van egy ötletem. Bár lehet hülye ötlet, de ha van wifi hálózatod otthon és a teló is csatlakozva van, akkor hagyd az usb kábelt és próbálj meg adb connect-el csatlakozni a telódhoz. Nem tudom, hogy működik valós eszközzel nem próbáltam, én VirtualBox emulátornál használom, ott működik.
Másik ötletem, consolt és logcat-et hesszeld, van hogy elgépel véletlenül valamit az ember manifestben vagy bármilyen xml-ben, amit a fordító se vesz észre. Akkor nem indul még a install sem, már találkoztam ilyennel, egy egy soros kis üzentet írt talán a consol-on.
"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."
Új hozzászólás Aktív témák
- AirPods Max - Silver (Hibátlan és tökéletes állapot, tulajdonképpen új, pár napot volt használva)
- LEGJOBB ÁR! GAMER PC - RTX 3070 - Ryzen 5500 - 16GB DDR4 - 500GB Nvme SSD
- ÚJ Playstation 5 CFW képes (feltörhető), lemezes
- ÚJ Dell Vostro 3520 - 15.6" IPS 120Hz / i5-1235U / 8-16Gb DDR4 / 512Gb / HUN backlit / 3 ÉV GAR.
- Nikon D7000, Tamron 18-270mm, Sigma 150-500mm
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: Ozeki Kft.
Város: Debrecen