- Több tucat gyorsító összeköthetőségét kínálja az Instinct MI400 sorozat
- Imádja az alteregókat az új AMD Software
- Csak úgy szórja a dollár milliárdokat adatközpontokra az Amazon
- Mexikó tisztázta a Google-t a monopóliummal kapcsolatos vádak alól
- Egyre csak fejlődik az AI, emberek tízezreit rúgja majd ki a BT
- Kormányok / autós szimulátorok topikja
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Amlogic S905, S912 processzoros készülékek
- Hobby elektronika
- Milyen billentyűzetet vegyek?
- OLED TV topic
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- TCL LCD és LED TV-k
- Külső merevlemezek - USB, eSATA, FireWire HDD
- Apple MacBook
Új hozzászólás Aktív témák
-
lanszelot
addikt
válasz
lanszelot #12143 üzenetére
Sikerült megtalálnom a hibát.
LocaleHelper .java file -ban véletlen töröltem egy betűt a package name -bőlAmi érdekesség, hogy nincs instantiate .
Amit nem értek, hogy hogyan.
java tudáom szerint ez kellene:LocaleHelper localehelper = new LocaleHelper();
Ha beírom ezt a sort, akkor nincs vele baja és azt a localehelper -t használja
De ha nem írom be, úgy ahogy a linknél van, úgy is jó.A másik ami még szemet szúrt, hogy sokan if n-él nem használják a kapcsos zárójelet, és úgy is jó.
pl:if(vmi)
//code
else
//code
Hogy pelda is legyen: 19:22 -nél [link] -
urandom0
senior tag
válasz
lanszelot #12143 üzenetére
Ez az xml-es bohóckodást én is utáltam Androidban. Sőt, az igazat megvallva, az egész Android fejlesztést utáltam elejétől a végéit. Van egy cikk ebben a témában angolul, ezt szoktam ajánlgatni: https://rmirabelle.medium.com/the-android-sdk-is-the-worst-thing-on-earth-c3aaebbd2e6d
Százával vannak még hasonló írások: https://news.ycombinator.com/item?id=41062292
https://news.ycombinator.com/item?id=40742719Aki ezt az xml-es faszkodást kitalálta, annak remélem külön bugyra van a pokolban. Lehet egyébként procedurálisan is csinálni az egészet, de ahhoz közel nulla dokumentáció van.
Mondanám, hogy térj át inkább Kotlinra, és tanuld meg a Jetpack Compose-t, de csak akkor mondanám, ha rosszat akarnék neked (és ha nem tudnám, mi az a declarative UI nevű lázálom). Én azért hagytam abba az Android fejlesztést, mert egy tragédia az egész, elejétől a végéig.Csak egy dolgot mondok neked, ha egy framework doksijában olyanokat látsz, mint pl. hogy "less code", "intuitive", "it simplifies...", "makes it easy", akkor sovány vaddisznó vágtában menekülj onnan. Sőt, ha jót akarsz magadnak, a nagyvállalati cuccokat, úgy, ahogy vannak, kerüld el.
-
urandom0
senior tag
válasz
lanszelot #12138 üzenetére
Mindig tedd hozzá, hogy milyen platformon fejlesztesz, mert anélkül nem lehet pontos választ adni. Az Android processzkezelése egész más, mint mondjuk egy asztali Java alkalmazásé vagy egy Spring Boot appé, mert ugye Androidon intentekkel meg activitykkel kell játszani. Ott valami ilyesmi megoldást kell csinálnod (nem értek hozzá, én is csak úgy copyztam):
Context ctx = getApplicationContext();
PackageManager pm = ctx.getPackageManager();
Intent intent = pm.getLaunchIntentForPackage(ctx.getPackageName());
Intent mainIntent = Intent.makeRestartActivityTask(intent.getComponent());
ctx.startActivity(mainIntent);
Runtime.getRuntime().exit(0);Vagy ilyet:
public static void triggerRebirth(Context context, Intent nextIntent) {
Intent intent = new Intent(context, YourClass.class);
intent.addFlags(FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(KEY_RESTART_INTENT, nextIntent);
context.startActivity(intent);
if (context instanceof Activity) {
((Activity) context).finish();
}
Runtime.getRuntime().exit(0);
}De lényegében ez is arról szól, hogy új processzként elindítod saját magad, magadból pedig kilépsz, és az új processz pedig fut tovább.
-
urandom0
senior tag
válasz
lanszelot #12136 üzenetére
Android? Ha igen, akkor az Android topikban kellene feltenni a kérdést, mert ott más megoldás kell (újrahívni az intentet, vagy nem tudom, nem értek hozzá).
Ha asztali program, akkor több lehetőség is van, pl. ProcessBuilder-rel elindítasz egy új példányt a programodból, a jelenlegiből pedig kilépsz System.exit()-tel. Vagy a Runtime.getRuntime().exec() metódussal indítasz egy új példány, és kilépsz a jelenlegiből.
Vagy ha kicsit softosabb újraindítás kell, akkor csinálhatod azt, hogy a main() metóduson belül egy másik metódusba (pl. launch) rakod a programod lényegi részét, és ezt a metódust bármikor újra tudod hívni.
De végső soron visszaállíthatsz mindent alapra egy metódussal, de ezzel kapcsolatban nekem vannak kétségeim, elég könnyű hibázni, főleg, ha vannak statikus metódusaid is.Nyilván a konkrét megvalósítás erősen függ attól, hogy pontosan mit és hogyan csinál a programod.
-
urandom0
senior tag
válasz
lanszelot #12130 üzenetére
Ha itt is azt fogod csinálni, mint a PHP-s topikban, elég hamar kiidegeled a népet
Ezt figyelmesen, alaposan olvasd át:
https://developer.android.com/studio/debug/index.htmlSzerintem a Attach the debugger to a running app rész kell neked, ott csúszhatott el a dolog.
-
-
válasz
lanszelot #12120 üzenetére
Te Android fejlesztés specifikus kérdéseket tettél fel most, nem java-st. Androidra pedig már a Google szerint a kotlin first az irányelv. Amúgy 1-1ben alakítható a java-kotlin ide-oda. De továbbra is csak egy nyelv, teljesen mindegy milyen nyelven írod a natív alkalmazásod, főleg mert a linkelt videó xml alapú anim resourceok használatát mutatja be.
Szerintem egyáltalán nem érted és nem is akarod érteni a mögöttes dolgait annak amit csinálsz, így pedig nehéz segíteni. Másképp nem írnál ilyet, hogy "kiskapu".
Amúgy lehet csak pure Java-val is. Csinálsz egy CustomView-t és annak az onDraw metódusában azt rajzolsz ami jól esik.
Ha ilyet akarsz, akkor javaslom, hogy az alap OO programozás könyvek mellé egy Számítógépes grafika könyvet is tolj végig. -
válasz
lanszelot #12118 üzenetére
Hello,
Nem android studio specifikus, az csak egy IDE.
XML-ben is van amit tudsz animálni, de ha ilyen egyedi rajzolást szeretnél, akkor canvas-re kell rajzolnod és ott megoldani.Ne is hasonlítsd a CSS-hez, ami a webes világban van. Ha amúgy csak ennyi a célod, akkor jobban jársz egy PWA-val androidra, mert azt írhatod tetszőleges webes toolokkal és lényegében egy weboldal aminek van ikonja a launcheren.
Továbbra is javaslom, hogy az alapokat értsd meg programozásból. Amúgy Google első találat: https://www.youtube.com/watch?v=8rF_8wIrpL4
-
válasz
lanszelot #12114 üzenetére
Értéket adsz át primitív típusoknál (int, boolean, double, stb) nem referenciát, szóval ez így nem fog működni. Fogalmam nincs, hogy körülötte mi van, nyilván van sokféle megoldás OO/wrapper esetben, de ha csak egy rövid scriptként nézzük akkor ez csinálja azt amit szeretnél. Sok értelme mondjuk nincs.
boolean egy = false;
egy = myMethod();
public boolean myMethod(){
return true;
}
Amúgy javaslom, hogy legalább olvass el 1-2 programozás alapjai cikket vagy könyvet, mert az oké, hogy nem érted az specifikus android vagy mélyebb tudást igénylő dolgokat, de itt az alapokkal is gondok vannak, úgy pedig nagyon nehéz haladni.
Vagy ha más nem, akkor másold be chatgpt-be mondjuk és kérd meg h magyarázza el a kódot vagy írd meg neki mit szeretnél. -
lanszelot
addikt
válasz
lanszelot #12111 üzenetére
Hello
Sikerült megoldani:
Az egész "setOnCheckedChangeListener" -t be kellett raknom a methodomba.
Én csak a benne lévő "if" -et próbálgattam, de úgy nem lehet, és ez volt a gond.
Már semmi ötletem nem volt, és gondoltam mit veszíthetek, ha megpróbálom az egészet bele rakni, és így működik -
válasz
lanszelot #12109 üzenetére
Hello,
Ötletem sincs miért akarod inner methodnak. Simán tedd egy szintre az onCreate-tel és hívhatod az osztályban bárhol this.yourmethod()-dal.
Amúgy van megoldás arra is amit szeretnél, lambda, anonymus vagy local class kifejezésekkel találsz rá megoldást. De Java-ban ez nem egy követendő irány, mint néhány funkcionális nyelvben. (pl Python). -
axioma
veterán
válasz
lanszelot #12106 üzenetére
Nezd, en elvet adtam at, nem megoldast. Igy lehet az elozo kerdesedben szereplo ertekadast [letrehozassal egyutt] megoldani. Egy tipust csak at tudsz irni... mobilrol ket masik tennivalo kozott ezt tudtam beszurni.
Visszanezve az elozmenyeket, az imageviewx-ek letrehozasat lehet ugy meguszni, h ahol most az imageview1 = stb sorok vannak, oda azt irod hImageView[] viewNr= new ImageView[5];
viewNr[0]=findViewById(R.id.Egyes);
<stb>
es utana csak a tombbol hasznalod oket csak. -
axioma
veterán
-
axioma
veterán
válasz
lanszelot #12100 üzenetére
Jaaa, akkor felreertettelek. OK, nevezzuk imageNumber-nek, az imageId az alfanumerikusra utal inkabb.
Szoval az altalad "one" id-val ellatott resource-hoz az R resource class hozzarendelt egy imageNumber-t, ami int, es ezt tarolja az R.drawable.one alatt. Igy mar talan ertheto.A teljes switch elhagyhato. Az ertelme annyi, mintha a teljes
switch(r) {...}
helyett azt irnad, hogyviewNr[v].setImageRescource(imgId[r])
(mondjuk nincs default agad, igy annyi kulonbseg azert van, hogy ha a v nem [0..5], akkor a switch lefut csak semmit nem allit be, az egysoros meg hibat ad)Van tobb aprosag amit lehetne me'g javitani. Pl. a viewNr letrehozas miert kerult be a listenerbe, es miert ket lepesben kap erteket?
ImageView imageView1 = findViewById(R.id.Egyes);
viewNr[0] = imageView1;
ehelyettviewNr[0] = findViewById(R.id.Egyes);
A randszam feleslegesen van inicializalva randomra, azt nem hasznalod, felulirja a for ciklusban - ez gondot nem okoz csak kod-olvashatosagot, mire gondolhatott a kolto alapon...
-
axioma
veterán
válasz
lanszelot #12096 üzenetére
Milyen ertelemben nem egesz szam? az egy egesz, pontosabban az adott nyelv int-je (az egeszek egy reszhalmaza) - a rendszer hozzarendelt ahhoz a megadott (kephez, ha jol ertem) egy azonositot, amit ezentul az R.drawable.one uton ersz el. Ha egy masik eleme't erned el a resource osztalynak, akkor annak (jo esellyel) mas tipusa lenne.
Amugy ha most kezd mar osszeallni, akkor tekintsd meg a switch-edet. A dobas 0-5 kimenetelehez rendelsz egy masik szamot, amit elore tudsz. Tehat az egesz kicserelheto arra, hogy csak indexeled oket egy elemeivel definialt tombben:int[] imageIds = new int[] {R.drawable.one, R.drawable.two... };
randszam = ...;
viewNr.setImageResource(imageIds[randszam]);
Igy meg kulon fuggveny se fog kelleni. -
axioma
veterán
válasz
lanszelot #12091 üzenetére
hogy int: hat az int x =5; utan az x is int... de amugy 1. ott az ide, menj az utolso tag [one] fole, nem jon fel buborekban, h mi az? 2. log-old ki az erteket
az R.drawable.one _nem_ string, egy azonosito [ok, egyszerusitve], nem egyezik az "R.drawable.one" stringgel. Igen, backend-es voltam vilag eletemben de hallottam hiret hogy frontend egyes technologiaiban ez csiki-csuki... itt nem [ill. kerulendo, mint korabban angolul is, meg tolem is elhangzott].
csinalj csak ennyit:int imageId = R.drawable.one;
imageView1.setImageResource(imageId);
Ha ez elfut, akkor menjunk tovabb. Ha nem, hibauzenetet mutasd.
[az termeszetesen _nem_ varhato, hogy az imageId -nak barmi koze lesz a 'one'-hoz, lehet h csak nemletezo id-val probaltad, az id nem feltetlen folytonos, sot, az inkabb index nevet kapna] -
válasz
lanszelot #12088 üzenetére
Az
setImageResource
(int) metódusba be tudsz írni egy olyan függvényt, aminek a visszatérési értéke int.
Nem néztem végig a teljes kódod, de valami ilyesmi fog kelleni neked:public void setImageResourceBasedOnValue(ImageView imageView, int value) {
imageView.setImageResource(getDrawable(value));
}
private int getDrawable(int value) {
switch (resourceId) {
case 0:
return R.drawable.one;
case 1:
return R.drawable.two;
default:
return R.drawable.three;
}
}
-
-
axioma
veterán
válasz
lanszelot #12086 üzenetére
a fuggveny/eljaras es ezek angol neve attol fugg, ki mikor es melyik nyelven szocializalodott a programozasba
igen, method-ra gondoltam
Amit az angol nyelvuben irnak, az ket dolog.
1. meg lehet oldani elvben amit elsore lekodoltal (azaz a string alapjan "kiertelmezve" elkerni az objektumot), de nagyon antipattern, tehat azt az iranyt el se kezdtem
2. map-et meg ugy akart, hogy helyette van egy fix map-ed, ami a "one" stringhez hozzarendeli az R.drawable.one objektumot stb, es attol kered el
(de ha kicsit tavolabbrol nezed a kodot, ez a 0-hoz rendeled az obj-ot modon is hasznalhato, az meg csak egy indexeles egy tombben - ide gondoltam hogy idovel eljutunk, csak kisebb lepesekkel) -
axioma
veterán
válasz
lanszelot #12083 üzenetére
ne a switch-ben set-eld csak
a szamBetuvel mintajara egy objektumnak adj erteketja egybol return jobb
fg-ben az int randszam-tol csakcase 0: return R.drawable.one;
stilus, majd foprog-ban:imageView1.setImageResource(myFunc());
...
imageView5.set...
A map hasznalata me'g korai, ezt bogozd ki es ertsd meg elobb, aztan ki lehet a switch-et o[timalizalni ahogy emlitettem..
[megj. lehet olyat is h forditva, a fg parametere h imageViewN, es annak allitod a switch-ben, de ott me'g kene elobb egy ertek v ref. szerinti atadas gyostalpalo, maradj az egyszerubben programozhatonal]
-
axioma
veterán
válasz
lanszelot #12081 üzenetére
azt emeled ki fg-be ami ugyanaz lenne
irdd meg 2-re a 'hosszut'
ami egyforma [szam kitalalas, szambol object switch] az s fg, visszaadja az objektumot, te meg 5x hivod 5 valtozoba setImageResource-olva az eredmenyt [a parameter maga egy fg-hivas]
ha elakadsz, szurd be hogy allsz ne csak meta-beszelgessunk rola -
axioma
veterán
-
axioma
veterán
válasz
lanszelot #12073 üzenetére
zold: sztem mert nem ertelmes angol szo
69. hiaba tudod h mindig erteket kap a szamBetuvel, az ott statikus kodelemzes alapjan lehet inicializalatlan
[vagy legyen default ag, vagy a deklaracional irj egy ="" -t, akkor mar csak letezo erteket irsz felul]mit csinalj: ha 5 kockadobas kene, akkor a for ciklusban kene beirni [nem latszik h az-e az a blokk] az eredmenyeket
-
válasz
lanszelot #12036 üzenetére
Magyar nyelvi kóddal lekérés nem megfelelő? Abban magyarul vannak a description mezők.
[link]lang (optional) – Sets the language of the translatable parts of the output such as the conditions field. Available languages include: ar (Arabic), bg (Bulgiarian), cs (Czech), da (Danish), de (German), el (Greek Modern), en (English), es (Spanish) ), fa (Farsi), fi (Finnish), fr (French), he Hebrew), hu, (Hungarian), it (Italian), ja (Japanese), ko (Korean), nl (Dutch), pl (Polish), pt (Portuguese), ru (Russian),, sr (Serbian), sv (Swedish), tr (Turkish), uk (Ukranian), vi (Vietnamese) and zh (Chinese). In addition passing in ‘id’ will result in the raw descriptor IDs.
pl:
description":"Részben felhős egész nap."
Új hozzászólás Aktív témák
Hirdetés
A topicot kiemeltem. Valaki nem akar egy nyitó hsz-t írni?:))
- Eladó Apple iPhone Xr 64GB fekete / ÚJ KIJELZŐ / 100% AKKU / 12 hónap jótállással!
- Gombászkönyvek egyben
- AKCIÓ! Lenovo Thinkpad P15 Gen1 15 FHD notebook - i7 10750H 16GB RAM 512GB SSD Quadro T1000 W11
- Xbox Ultimate előfizetések
- BESZÁMÍTÁS! Logitech G923 kormány + Driving Force Shifter garanciával hibátlan működéssel
Állásajánlatok
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest
Cég: CAMERA-PRO Hungary Kft
Város: Budapest