Hirdetés
Új hozzászólás Aktív témák
-
Kutyauto
csendes tag
válasz thiclyoon #5466 üzenetére
Köszi, a viewModel lesz a jó kulcsszó. Tanultam az Activity életciklusokról és a saveInstanceState-ről, de nem emlékszem hogy a viewModelről lett volna szó. Persze nem kizárt, de nem emlékszem rá. A tanfolyam harmadik részét nem vettem meg, ott egész biztos előkerült volna. De mindegy, ennyi már elég, holnap majd utánaolvasok.
-
bandi0000
nagyúr
válasz thiclyoon #5466 üzenetére
Miért kellene singleton viewModel? Az pont arra van, hogy config változás esetén, mint az elforgatás, megtartja az àllapotát
Önmagában nem is ajánlott singletont csinàlni a viewModelből, nàlunk egy bug volt miatta, mert az app bezárása esetén megmaradt a memóriában, viszont a lifecycle cuccok meg nem indultak újra
Xbox One: bandymnc
-
Kutyauto
csendes tag
válasz thiclyoon #5457 üzenetére
Van anyagom az enumra, volt róla szó de nekem újdonság, nem is jutott eszembe.
Most az a szituáció, hogy ugyanazon a gépen játszom. Nincs élő partner, a gép lép egy timerrel, aztán megint én. A gép lépése után ugyanúgy elindulnak az animációk amikor olyan a szitu. És én úgy veszem észre, hogy ha egymás után elindítok 6 db animációt akkor sosem fogom tudni hogy melyik ért véget utoljára, hogy az kapcsolja majd vissza a lépés lehetőségét.(ezt próbáltam áthidalni az AnimCount változóval) Ráadásul úgy veszem észre ha az AnimationEnd metódusban visszaállítom a lépés lehetőségét (Clickable=1 ), majd rögtön köv. sorban eltüntetem (Invisible) a kiesett ImageView-t... hiába... már rég le van futva a két sor, mikor (ha elég gyors vagyok) még mindig rá tudok bökni az elemre amire már nem volna szabad tudnom rábökni. Vagy elvétek valami sorrendet, logikát, vagy ez ilyen... nem tudom.
Lényegében most megoldottam hibátlanra egy plusz timer beépítésével és túl is gondolom bizonyos szempontból, hiszen ha hálózaton másik játékossal fog menni a játék (amit célom lesz beépíteni NodeJS alapon) akkor bőven lesz idő mindennek lefutnia míg a kommunikáció lezajlik.
Amúgy is minden nap ezer dolog merül fel amibe belebotlok és nem értem de meg kell tanulnom hogy így van és kész.
pl. van a gombnak strikeColor meg strikeWidth tulajdonsága amit az xml-ben be tudok állítani de futásidőben már nem érhetők el. Vagy hogy használni tudom a setBackColor függvényt, de lekérdezni a gomb aktuális színét csak egy külön furmánykodással lehet. Persze ezt a furmánykodást beépíthetném egy saját funkcióba, ilyenekből épül aztán az embernek egy saját függvénykönyvtára és kész.
Apropó, az pl. nem lett kibeszélve a tanfolyamon, hogyan épül fel ideális esetben egy ilyen rendszer. Saját, több külön projektben újra és újra felhasználni tervezett osztályokat, funkciókat hová kell tenni? Hogy ugyanúgy lehessen aztán behúzni őket egy új projektbe saját gépről, mint a többi függőségeket.
Vágom a fát szorgosan, de nem látok a szálló forgácstól... -
Kutyauto
csendes tag
válasz thiclyoon #5454 üzenetére
Hát én tényleg csak kezdő vagyok ebben a rendszerben, nem egy mutatni való minőségű kód ez. Mindent kipróbálok ami szembe jön, aztán ha már megtaláltam, kitököltem akkor sem törlöm ki ha mégsem akarom használni, csak kikommentelem. (Mint pittyegés, wav lejátszás, rezegtetés meg effélék) Szóval katyvasz még.
A lényeg, hogy van egy fragmentem, abban egy frame layout.
Ebbe a layoutba futás idő alatt kóddal helyezek el egy csomó egyforma ImageView objektumot. A végeredmény úgy néz ki kb. mint egy sakk tábla.
Minden ImageView ugyanazt a timer kódot futtatja kattintáskor. Mindenféle kiértékelések , és akár hat elemen is animációk futtatódnak. Ennek mind le kéne mennie és a köv. kattintásnak csak ezek után kéne lehetővé válnia. Leegyszerűsítve, áttekinthetősítve ilyen volna:var Clickable:Int = 1 // segéd változó ez jelzi, hogy kattinthatók-e éppen az elemek.
var AnimCount = 0 // segéd változó amiből az utoljára befejeződő animációnak látnia kéne, // hogy a Clickable-t neki kell visszaállítania 1-re.
var ViewList: MutableList<View> = mutableListOf<View>()
// segéd lista amit kezelgetek - a gépi válaszlépés használja.
var GuestTheNext:Int =1 //ki lép következőre ?/*ImageView click kód*/
ImageView.onClickListener{
if (Clickable==1){
onClick()
} // onClickListener vége
}fun onClick()
{
Clickable = 0
/* itt vannak még egyéb dolgok, változókat állítok, képeket cserélek vezérléseken, ilyesmik*/
click_timer.start() // itt indulna egy timer, ami kis időt ad a usernek érzékelni a képernyőn //történt változást, majd értékel és visszaállítja a képernyőt várva a köv. //lépést.
}
/*ImageView click kód vége*/
/* timer kód*/
val click_timer = object : CountDownTimer(500, 500) {
override fun onTick(millisUntilFinished: Long) {}
override fun onFinish() {
/*animáció meghívása két adott objektumra*/
Remanim(ActiveView1)
Remanim(ActiveView2)
/* ... itt egy csomó egyéb művelet, elágazás stb.*/
/*animáció meghívása további objektumokra*/
Remanim(fw_binding!!.imageViewB)
Remanim(fw_binding!!.imageViewC)
Remanim(fw_binding!!.imageViewJ)
} //OnFinish vége
} /*timer kód vége*//*Az animáció*/
fun Remanim(view: View) {
view.animate()
.setDuration(500)
.rotation(360f)
.translationY(0f)
.alpha(0.0f)
.setListener(object : AnimatorListenerAdapter() {
override fun onAnimationStart(animation: Animator?) {
super.onAnimationStart(animation)
AnimCount++
}
override fun onAnimationEnd(animation: Animator) {
super.onAnimationEnd(animation)
/* itt vannak még dolgok, pontszám kiírása ilyesmik*/
if (AnimCount <= 1) {Clickable = 1}
AnimCount--
view.visibility = View.INVISIBLE
ViewList.remove(view)
if (GuestTheNext == 1) GuestTheNext= 0 else GuestTheNext= 1 //játékost cserél
if (GuestTheNext==1){
guest_timer.start() // itt hívódna a vendég játékos, illetve a gépi válasz lépése. tulképp ő is az // onClick() függvényt fogja hívni, csak másik View paraméterrel.
}
}
})
Lényegében a változókkal variálás nélkül simán szét lehet kattintani a képernyőt míg a timer meg az animációk futnak. Végső soron ezzel a variálással sem tökéletes.
Ha elég vadul tapizom a képernyőt akkor szétesik a kód, kétszer egymás után is ugyanaz a játékos tud lépni. -
Dilikutya
félisten
válasz thiclyoon #5444 üzenetére
Nem tervezek átképzést. Csak bele akarok kóstolni, kíváncsi vagyok. Tudom, hogy nem egy ilyen anyag a csoda. IT-s vagyok, de a programozáshoz amúgy annyi közöm van, amit fősulin tanultam, főleg C#, kis php.
Nem vagyok perverz, csak haladok a korral. (Még mindig: Rock&roll feeling baby, rock&roll feeling.....)
-
prime_adam
aktív tag
válasz thiclyoon #5435 üzenetére
Köszi a választ!
A külső linkek kezelését megnéztem és valóban találtam rá megoldást (legalábbis elméletileg).
A fizetési rendszerrel viszont továbbra is vannak bajaim. Ahogy nézem az SDK-t úgy tudom használni, hogy van egy "natív gomb", ami fizetésre megjelenít egy réteget az app felett. Ez egyébként tök jó lenne, csak a fizetési gomb már szerepel a webes verzióban, elküld egy kérést a backendnek, az elindítja a stripe fizetést és a frontend visszakap egy URL-t, amire megtörténik az átirányítás. Tehát nem tudom, hogy ebben a folyamatba hogy lehetne az SDK-t beilleszteni, ráadásul belülről a webview-ból triggerelni a natív fizetést
Szerk.: talán azt lehetne, hogy mint a külső linknél, ha stripe átirányítás történne, helyette bedobom a natív stripe fizetési réteget és lekérem hozzá az adatokat. De ez csak ötlet, fogalmam sincs, hogy működne-e
[ Szerkesztve ]
-
-
válasz thiclyoon #5389 üzenetére
Activityben / fragmentben vagy?
A main_activity mellé tettem be egy Google Maps activity-t a galleryból, és azt szerettem volna megcsinálni, hogy a main_activity-ből egy gombnyomásra átmenjen a térképes activity-be.
Amúgy egy teljesen alap, empty activity a projekt, van benne négy button, két textview és egy image. Az egyik buttonnek adtam egy "btnLogin" id-t, de a kódban nem ismeri fel.Ha layout file-lal dolgozol akkor először a biztonság kedvéért nézd meg hogy nincs-e valahol tools:viewBindingIgnore="true".
Ezt magától nem teszi be, ugye? Én nem írtam a kódba ilyet.
De most nem vagyok gép előtt, délután majd leellenőrzöm azért. -
domel
tag
válasz thiclyoon #5383 üzenetére
Visszaszívom az előbbit, mindenki túlbonyolít és elvesztem a részletekben
<?php
$FIREBASE = "https://dom****489775839564-default-rtdb.firebaseio.com/";
$NODE_SAVE = "chat.json";
$message = 'valami';
$data = array(
'mes' => $message
);
$json = json_encode( $data );
$curl = curl_init();
curl_setopt( $curl, CURLOPT_URL, $FIREBASE . $NODE_SAVE );
curl_setopt( $curl, CURLOPT_CUSTOMREQUEST, "POST" );
curl_setopt( $curl, CURLOPT_POSTFIELDS, $json);
curl_setopt( $curl, CURLOPT_RETURNTRANSFER, true );
$response = curl_exec( $curl );
curl_close( $curl );
// Show result
echo $response . "\n";
?>
tettem pár csillagot az url-be, mert nincs hozzá beregisztrálva weblap és így bárki belenyúlhat (teszt regisztrációs).[ Szerkesztve ]
-
domel
tag
válasz thiclyoon #5381 üzenetére
Nem számítottam rá, hogy ketten is ismeritek a Firebaset, akkor lehet hogy tudtok válaszolni egy problémámra, ami nem android:
a kérdés, hogy egy ilyen realtime adatbázisba hogyan tudok PHP-ből üzenetet küldeni? Azért lenne jó, mert van egy gagyi szoba-kamerám ami mozgásra meghív egy webcímet, de arra buta, hogy egy ilyen webcímen javascriptet futtasson. -
Csaby25
őstag
válasz thiclyoon #5341 üzenetére
Köszi! Igazából még nem dolgoztam programozóként. Java-t tanultam, ebben megcsináltam a tic-tac-toe-t De mivel adott egy ilyen lehetőség, gondoltam megpróbálom a Fluttert. Azt mondta a cég, hogy csináljak 2-3 appot, legalább egyet saját ötletből és utána jelentkezhetek...
[ Szerkesztve ]
A kis emberek más emberekről beszélnek, a középszerű emberek eseményekről, a nagy emberek pedig ötletekről beszélnek.
-
G.A.
aktív tag
válasz thiclyoon #5328 üzenetére
Üdv!
Csak 5 ezer sor, amiből sok a komment, debug funkció, teszt kód, régi kód... ez mind csak hobbi. Szóval ha ragaszkodnék a .net-hez akkor magamat szivatnám meg?Közben megoldódott az androidos telefonon a debug futtatásának problémája.
Csak annyi volt, hogy mégsem települt fel az ADB Interface Driver és a Windows Online Driver keresése ki volt kapcsolva, így persze nem talált jó drivert. Amint meglett a driver, már ment is a debug a Visual Studio-ban.GA
-
bandi0000
nagyúr
válasz thiclyoon #5208 üzenetére
Köszönöm, látszik, hogy sokat kell még tanulnom... Nem is gondoltam rà, hogy ne Calendart adjak át, pedig igazàból egy sima string is elêg hozzà, na majd átírom és meglátom milyen lett
Am én sem tudom milyennek kellene lennie, csak akiknek készül, régi tableteket használnak, cserébe pedig elvárják, hogy smooth legyen :D
Xbox One: bandymnc
-
bandi0000
nagyúr
válasz thiclyoon #5206 üzenetére
Bocsesz, kicsit kapkodva összedobtam egy szösszenetet, de ezek szerint nem túl jól gondoltam, hogy elég lesz
Mindenesetre most csináltam egy új projektet, ebben benne van a home-on a naptár, emulátoron se sima a betöltése, viszont az itthon lévő nem túl acélos 30k-s tableten 2-3s volt míg betöltött, szóval itt benne sincs a legtöbb dolog a projektben, és így sem szép sima a betöltése
[Project]Xbox One: bandymnc
-
Postas99
senior tag
válasz thiclyoon #5202 üzenetére
Kodular, MIT2 és hasonlókkat raktam már össze apróbb dolgokat. De ez nem az a felület amin én összetudnám rakni amit szeretnék. Ezért belevágtam az Android Stúdióba.. szivesen elkezdeném az alapoktól, 1-2 tutorialt megnéztem hogyan lássak neki, de az adroid stúdióban elakadtam az még csak csak hogy felszórom a fő oldalra az összes UI dolgot, de innentől jönne a fő lényeg és elakadtam... Szóval tanulnék is... és szívesen venném ha valaki besegítene..
-
bandi0000
nagyúr
válasz thiclyoon #5202 üzenetére
Megköszönném, mert nem vagyok egy nagy UI guru, Androidon szeretem mert viszonylak faék, de épp emiatt félek, hogy ilyet nem lehet megoldani, oké összedobáltam, de mégse működik rendesen
Egyrészt amúgy tableten teszteltem, igaz csak debug verziót, a staged valamennyivel gyorsabb volt, de még az sem az igazi
A teljes projektet nem tudom megosztani, de igazából itt vannak az érintett fájlok, viszont ha igazad van, akkor nem ezzel lesz a probléma szerintem, mert elég faékre sikeredett,plusz hozzá sincsenek rakva még az események lekérdezése stb [Kód]
Amúgy régebbi projekttel volt hasonló, mikor 1.0 material-ról átálltunk 1.2?-re asszem, akkor szemmel láthatóan is a 2 verzió között volt betöltési sebesség különbség
Xbox One: bandymnc
-
inf3rno
nagyúr
válasz thiclyoon #5179 üzenetére
build -> build bundle(s)/APK(s) -> build APK(s), utána a helloworld\app\build\outputs\apk\debug\app-debug.apk néven menti, azt felmásolom, és package installerrel nyitom meg, de valamiért nem települ. Lövésem sincs, hogy hogyan íródik alá. Van egy BuildConfig.java, esetleg abban kéne átírni, hogy ne debug legyen, vagy mindegy, így is mennie kéne?
[ Szerkesztve ]
Buliban hasznos! =]
-
inf3rno
nagyúr
válasz thiclyoon #5170 üzenetére
Ezt írja: INSTALL_PARSE_FAILED_NO_CERTIFICATES
Meg azt is írta, hogy az adb.exe elavult, és hogy emiatt teljesítménybeli problémák lehetnek. Hát meg is akadt pár másodpercre a gép amíg lement a compile vagy mit csinálhatott a háttérben. Elvileg a saját JRE-jét használja, azért nem is értem ezt az elavult dolgot. Van egy régebbi JRE is a gépen meg egy új is, amit most telepítettem, szóval elég kérdéses, hogy éppen mi fut. Lehet, hogy le kéne mindet gatterolnom, és újrakezdeni nulláról, csak attól tartok, hogy akkor meg más programokkal nem fog működni a java, pl webstormmal.Buliban hasznos! =]
-
válasz thiclyoon #5127 üzenetére
Köszi, és @domel is.
Nekem free app, csak adományozás lesz, mondjuk $1 és $2-ért lehet majd "venni" ilyet, a billing-et már belefordítottam, de kipróbálva nincs... A leírás, stb., az nem ügy, teljesen nyilvánvaló, hogy kérik (az Apkpure meg az Aptoide is kér).@domel : Adatvédelmi szerződés generátor oldal pl. van, lehet ki kéne próbálnod
A kulcsot kimentettem már magamnak az Android Studioból, annak meg köll lennie
Mutogatni való hater díszpinty
-
Ablakos
őstag
válasz thiclyoon #5043 üzenetére
Ugyan, dehogy akarok én győzködni. Olvasgattam a Jetbrains referenciát és meggyőző. (a cigány is a maga lovát... )
Valóban a lustaság miatt nem váltottam. Néhány évet Oracle Java RestApi-kat faragtam és így könnyebb volt a syntax. Azt gondoltam, csak Android fejlesztéshez készült a Kotlin, de attól lényegesen többet tud. -
lanszelot
addikt
válasz thiclyoon #5032 üzenetére
Hello,
Először is köszönöm a választ.
Amit ajánlottál sehogy se az amit én írtam:
" Kinek ajánlott A képzés azoknak szól, akik rendelkeznek programozói alapismerettel. Tisztában vannak a következő fogalmakkal: változók, ciklusok, függvények, osztályok, objektumok, interfészek és kivétel kezelés."
No, ez nem én vagyok.INDULÁS: 2020.07.07. - azaz már megy.
Minden amit vettem Udemy-n bukta volt eddig. 4 vagy 5 leckém van már ott, ami kuka.
Ennyi elég lesz az adományból.Ha van alapod, akkor biztos jó, vagy ha van haverod akivel tanulsz, esetleg van aki segít is....
Nekem egyik sincs. Teljesen az alapoktól kezdeném, és egyenlőre az érdekel képes vagyok-e magtanulni. Azután jöhet a 120e -es suli.Nem ingyen szeretném, csak igen sokat dobáltam már a kukába. Mivel nem lehet vissza kapni, ha nem tetszik, így nem próbálkozom tovább.
-
domel
tag
válasz thiclyoon #4993 üzenetére
Működik a kódod, úgyhogy van nagy öröm! Természetesen az volt az első, hogy megnézzem mi a különbség a kettőnk észjárása között, és a következő sorok voltak döntőek:
Context ctx = getApplicationContext();
Configuration.getInstance().load(ctx, PreferenceManager.getDefaultSharedPreferences(ctx));
én mindenre gondoltam, csak erre nem. Tehát letölti a térképet, lementi, és onnan tölti be, vagyis töltötte volna be, ha le tudta volna menteni.
Hálás köszönet a segítségedért, egy hetes kepesztés végére tettél pontot.
Üdv: -domel -
bandi0000
nagyúr
válasz thiclyoon #4987 üzenetére
Megoldottam végülis RadioGroup-pal, nem a legjobb de jóvanazúgy
Viszont nem nagyon jövök rá, vagyis inkább nem nagyon tudom mire keressek, Firestore-ba van egy collection azon belül generált kulcsok és azon belül az adatok, és nem tudom, hogyan kérdezzem le az adatokat, valahogy át kellene ugorni a generált kulcsokat, de nem találom, hogy hogyan
Xbox One: bandymnc
-
bandi0000
nagyúr
válasz thiclyoon #4979 üzenetére
Köszönöm
Amúgy visszatérve a régebbi kérdésemre, ugye a default kotlinos navigationt hasznàlom, de jó gyakorlat/megoldás pl egy egyedi dialogot mutatni mikor egy összetettebb szűrést vagy pl egy hirdetés feladást akarok megjelenïteni?
Vagy valahogy lekelleme cserélni a fragmentet mert az.a szebb nem?
Xbox One: bandymnc
-
bandi0000
nagyúr
válasz thiclyoon #4962 üzenetére
Na jah, nincs azzal gond, ha kiismeri az ember, én nagy f@sszal mentem neki, hogy majd útközben meglesz, aztán csak jobban utàna kellett jàrnom, mikor a viewmodel-ben a liveData null lett, és ősszefosta magàt az app, raktam mindenhova a kérdőjelet és a felkiàltójeleket aztán a végén inkább megnêztem, hogy is kéne csinálni :D
Xbox One: bandymnc
-
bandi0000
nagyúr
válasz thiclyoon #4947 üzenetére
köszönöm, pont így csináltam csak egyrészt benéztem, mert üresek a fragmentek így nem volt látványos a változás, szóval mindig cserélte, viszont az előző fragment, amiből nyitottam is látszik, meg az új is átlapoltan
na de túrom egy kicsit a stackoverflow-t hátha van valami ötlet
Xbox One: bandymnc
-
bandi0000
nagyúr
válasz thiclyoon #4945 üzenetére
Akkor jó, nem teljesen hülyültem meg
Amit pedig szeretnék csinálni az az, hogy van egy beállítások menüpontom, ebből akarok nyitni egy fragmentet, ahol a felhasználó a saját adatait szerkesztheti, de értelemszerűen ez a szerkesztési lehetőség nem tartozik a rendes menü listához, csak úgy " lóg a levegőben"
Régen ezt úgy csináltam meg, hogy a a menüre kattintás eseményre mindig lecseréltem a container layout-ba a tartalmat az éppen kiválasztott fragmentre, és ahol kellett ott simán a fragmentmanager segítségével nyitottam meg a fragmentből a fragmentet
De ez ugye itt nem akaródzik működni, null pointer kapok, mert nem található a container, ami ugye nincs is a base projektben
Dialoggal meg lehetne oldani egyszerűbben, de ehhez sztem jobban illik egy teljes fragment
[ Szerkesztve ]
Xbox One: bandymnc
-
bandi0000
nagyúr
válasz thiclyoon #4943 üzenetére
köszi
Még1 kérdés, nem tudom mennyire ismered/ismeritek a legújabb verziót(nem tudom régebbiben is így volt e), ahol ha a projektet eleve bottom navigation-nel hozom létre, akkor az activity-ben már meg van csinálva az alsó 3 menü definiálása, nyilván itt nem a fragmentManagert használja, hanem valami mást, tök szimpatikus a megoldás, viszont nem tudtam így simán megnyitni egy fragmentet ami ugye nincs a menüben, legalábbis egy container-t hiányol
Ezt az egész hóbelebancot lecseréltem a régi jólmegszokott menü navigálásra, amikor van egy container layout, és a fragmentManager segítségével dobálom bele a fragmenteket, és így már megtudok nyitni egy újabb fragmentet ha akarok, ilyen célra ez lehet a megoldás, vagy a gyárit is lehetne használni valahogy?
Xbox One: bandymnc
-
bandi0000
nagyúr
válasz thiclyoon #4927 üzenetére
Igazàból egyenlőre nem akarok bővíteni, az se biztos, hogy használni fogjàk, csak azt nem akarom, hogyha mégis nagy lesz a kereslet, akkor a tudtomon kívül kiállítanak egy vaskos számlàt :D
Más:
Tudom, hogy NoSql a firestorm is, de mi a legelegánsabb módja annak, hogyha pl lennének felhasználók, és azok pl vàlaszthatnak termékekből, nyilvàn hagyományos tàblàkban gondolkozva több a többhöz kapcsolat lenne köztük nyilván ez 3 táblát jelentene, ezt meg lehetne oldani benne?
Xbox One: bandymnc
-
hodav1993
csendes tag
válasz thiclyoon #4907 üzenetére
Szia!
Köszönöm válaszod! Én is elkezdtem az általad javasolt Udemy kurzust, nagyon jól lehet vele haladni és érthető is. Egyelőre erősen barátkozom a témával, minden nap 1-2 órát foglalkozom vele aktívan, igyekszem bővíteni napi 2-3 órára legalább a tanulási időszakot.
JAVA-t is elkezdtem vele együtt (meg persze a kurzus fele java) megtanulni. Későbbiekben gondolkodom a crossplatformra való fejlesztésen is, de egyelőre attól még messze vagyok. Esetleg ha tudnál további irányt mutatni, hogy pár év alatt hogyan juthatok el oda, hogy Androidra és iOs-ra is tudjak fejleszteni, azért nagyon hálás lennék!
Lehetséges, hogy privát üzenetben kereslék még a kérdéseimmel! Szóval előre is nagyon szépen köszönöm a segítséged, nagyon hasznos!
Dávid
Új hozzászólás Aktív témák
Hirdetés
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest