- Samsung Galaxy Watch4 és Watch4 Classic - próbawearzió
- Nem fogy a Galaxy S25 Edge?
- India felől közelít egy 7550 mAh-s Redmi
- Leica kamerákat kap a Xiaomi Mix Flip 2 is
- Motorola Edge 40 - jó bőr
- Honor Magic6 Pro - kör közepén számok
- Xiaomi 14 - párátlanul jó lehetne
- iPhone topik
- Samsung Galaxy A36 5G - a középső testvér
- Okosóra és okoskiegészítő topik
- Humanoid robotokat visz az AI-szervergyárba az NVIDIA és a Foxconn
- Nehéz helyzetben az SMIC, régebbi chipet használ az új Huawei laptop
- One otthoni szolgáltatások (TV, internet, telefon)
- Kevesebb dolgozó kell az Amazonnak, AI veszi át a rutinfeladatokat
- 1000 milliárd dolláros AI-központot akar az USA-ban a SoftBank
Új hozzászólás Aktív témák
-
-
doc
nagyúr
koszi, ez tokeletes, csak be kellett rakni az XML-be a TabLayout node-ot, es siman behuzta a ViewPagerbol a tab cimkeket es hozzarendeleseket
egy kovetkezo kerdes:
Szeretnek egy olyan elrendezest, hogy Portrait (allo) modnal egymas alatt legyen ket layout, Landscape (fekvo) modban pedig az alul levo 'atcsusszon' jobb oldalra, vagyis egymas mellett legyenek.
Erre tudnatok valami tippet adni? -
hati
addikt
Hogy ezt én miért nem ismertem korábban?
Itt minden jól le van írva: Designtime Layout AttributesEzer köszönet.
-
domel
tag
csak elméleti kérdéseket tettem fel, mivel az interneten minden angolul van a témában, nagy segítség tőletek hogy legalább tudjam mire keressek. A service-t hány féle képpen lehet elindítani? Olvastam valahol, hogy Daemon process az applikációtól független, de ez vagy kamu, vagy nem jött össze. A másik process és intent filter témában majd belinkelek egy érdekes kodrészt, az valószínűleg pont így csatlakozik saját magához (egy trükkel kilépéskor elindítja saját magát), majd megszakértjük
köszi az előző választ is!
Domel -
domel
tag
Oké, String ügyben meggyőztetek!
Azt szeretném kérdezni, hogy Service-ben lehetséges egy text fájlot letölteni az internetről? Egy ideje szenvedek vele, úgy vettem észre hogy a Service gyengébb még az UI-nál is a terhelhetőséget illetőleg, még a bevállt
private class MyTask extends AsyncTask<Void, Void, Void> {
sem megy
Esetleg lenne egy vállalkozó szellemű köztetek, akit ha megfizetek, megír egy olyan programot, ami Service-ben fél percenként megvizsgál egy interneten lévő text fájlot, és ha változás van, lejátszik egy hangot. A program akkor is működne, ha a programot bezárom, pont úgy ahogy a facebook messenger vagy a Skype (tehát látszólag meg sincs nyitva semmi, mégis megy). Én meg utalok mondjuk a PayPal-en vagy simán bankon keresztül. Én meg az így kapott forráskódból tanulnák, mert egyedül sajnos nagyon nehezen megy.
Üdv: Domel
-
SirRasor
addikt
Start_sticky-vel van megoldva, tehát valahol máshol lesz a gubanc.
Pont délelőtt olvastam azt, hogy a sticky és no_sticky között az a különbség, hogy amikor elfogy a memória és az android bezárja a szolgáltatást, akkor majd ha megint lesz szabad memória, akkor a stickyvel újra elindítja a szolgáltatást, a no-val meg nem.
-
SirRasor
addikt
Rábíztam az android studiora
Igazából meg se néztem, csak elfogadtam.
Meg kell valljam picit rövidítettem. Leszedtem 3 oktatóvideót is, de gondoltam kis gyakorlattal csak meg tudok csinálni akármit.
Visual Studio-ban C#-al ment. De kezdem érezni, hogy ez *picit* bonyolultabb.Egyébként szomorú látni ennyi év távlatából, hogy nem előrefelé fejlődik a programozás bonyolultság terén
Visszatérve egy szimpla timerre, delphiben csak kihúztam a tervezői nézetből a grafikus felületre, majd kétszer rákattintottam, amitől még az OnTick eseményt is kigenerálta. És ez volt..atya isten vagy 10 éve. Visual Studio-nál vagy 5 évet kellett még várni, hogy ennyire alapvető dolgokat belerakjanak. Ha akkor megkérdeztek, azt mondtam volna, hogy 10 év múlva olyan IDE-k lesznek, amikkel már kb. drag&drop módszerrel egy általános iskolás is össze tud rakni egy alap programot (pl: Game Maker).
Szóval nekiülök az oktató videóknak, mert úgy néz ki, hogy máshogy ez nem fog menni.
Ja amit föllinkeltem, annak az a baja, hogy a gui frissítéséhez el kéne érnie a guit, amihez nem lehet az eljárás static. A szolgáltatásos class-ban meg csak úgy tudok arra hivatkozni, ha static-ra állítom. Szóval vagy látja egymást a két class eljárása de a gui-t nem, vagy fordítva.
-
[KgP].Robot
aktív tag
Koszonom nektek! Holnap kiprobalom a Picassot.
Mas kerdes.
Meglevo kmz fajlokat szeretnek megjeleniteni google maps-ben sajat pozicioval egyutt. Illetve masok pozicioit is szeretnem ugyanebben a terkepben feltuntetni. Gondolom ehhez kell egy szerver, ami kiszolgalja az eszkozok koordinatainak kezeleset. A tobbi eszkozon is lehessen latni a bejelentkezett eszkozok koordinatait.
Foglalkozott mar valaki hasonloval?
Elnezest a sok kerdesert de melyvizbe dobtak... -
Az alap felallas az volt, hogy oda vissza tudjon kommunikalni a szerver a kliensekkel. Mara ez atalakult, eleg ha a szerver mindenkinek el tudja kuldeni az informaciokat.
Nem muszaj igy, azert irtam ide, hogy mondjatok meg hogyan csinaljam
mert latom hogy ez szar, csak nem tudom milyen iranyba induljak el.
1) mi az a broker?
2) hogy lehet azt dedikalni?
3) hogy mukodik ez a service discovery?Egyaltalan nem ertek hozza, mindent a guglibol tanultam autodidakta modon, ugyhogy ne haragudjatok a lama kerdeseim miatt
-
Nestor16
senior tag
Hát azt jelenti, hogy nem tudom folyamatosan szkennelni a wifi-t. Azért is ez a kiindulópont, mert ezt találtam forrásként jónak, meg közel áll az én programomhoz csak jól kéne módosítani.
Szóval wifiManager.startScan(); kódnak kéne többször lefutnia (igazából végtelenszer, amíg le nem nyomom a Stop gombot) vagy ezt más komponenssel kéne megoldani, service vagy intent?Most olyannal próbálkozom, hogy a WIFI ne menjen alvó állapotba:
Settings.System.putInt(getContentResolver(),
Settings.System.WIFI_SLEEP_POLICY,
Settings.System.WIFI_SLEEP_POLICY_NEVER); -
Viszonylag komplex az app. Van egy szerver és több kliens tablet. Egy buszba vannak telepítve a tabletek és powerbankről fut egy router. A kliensek alap infókat látnak a default activityn, itt böngészhetik a dolgokat. Ha a busz befut egy adott GPS zónába akkor a szerver érzékeli, wifin jelet küld a klienseknek, a klienseknek pedig elindul egy media activity videóval, képekkel, infókkal stb. Amint kiértek a zónából visszalép a szoftver automatikusan a default activityre.
-
Esetemben garantálva van, a felhasználó mindenképp visszatér a főképernyőre (nincs választása
).
Akkor először is ránézek a service kezelésre, mert ez nekem totál új sajnos. Másodszor az UI-s dolgokat megállítom az onPause-ban. Amikor visszatér az activityre akkor az onResume() hívodik meg ugye?
-
thon73
tag
Elég kevés adat is elég a szinkronizáláshoz. Töltsek fel Google Drive-ra egy kis file-t, amit a másik program leszed? Egyébként nekem is ez a "felhő" megoldás a legszimpatikusabb.
De mit tegyek akkor, ha nincs net (külföld pl.)? Bluetooth? Mennyire lehet ezt automatizálni? Gondolom a BT eszközt kézzel kell bekapcsolnom, mert azt nem engedi (nyilván) a rendszer a programnak, de a többit már lehet programozni? Bocs, de ilyesmivel még semmi tapasztalatom nincs, bluetoothban kb. az autó hifi-rendszeréig terjedek... De ezt is el kell kezdeni valahol. -
thon73
tag
Nagy-nagy köszönöm!
már olvasgattam egy ideje, de még egyik cikk sem foglalta össze ilyen jól! (Vagy valószínűleg túl részletes volt.)Konkrétan egyébként továbbra is a billentyűzet téma, ami az egyik gépemen tökéletesen működik, a másikon tökéletesen nem - mert nem ad onTouchEvent jelet, ha nincs mozgás.
Az "leütés" után hosszabb a várakozási idő, mint az ismétlések között = ez egyszer két időintervallum. Bizonyos billentyűk nem ismétlik önmagukat, hanem két jelentésük van. Az egyik mód a másodlagos jelentés előhozására, ha hosszan tartom. Ilyenkor a két jelentés váltakozik, de mindig a "hosszú" idő után. A logikus számomra az volt, hogy meghívom a "jelentést", vagyis amit a billentyű csinál, és az adja vissza, hogy a továbbiakban hosszú vagy rövid várakozás kell a következő tick-hez.
De a fentiek alapján már prímán meg fogom tudni csinálni, köszönöm!Érdekes egyébként, hogy a billentyűzettel kapcsolatos dolgokról alig van valami szó ((jó, ez a kérdés nem pont billentyűzettel kapcsolatos)); és rengeteg illogikus vagy rosszul dokumentált rész van benne. Pedig nagyon izgalmas része lenne egy érintőképernyőnek.
-
thon73
tag
Bocs, én csak amatőr programozó vagyok, és csak egyszer használtam ilyet.
Valamiért az volt bennem, hogy lesz egy háttér "ütemadó" szál; de ez a válasz teljesen megvilágított. Így akkor el sem hagyom az UI-thread-et! Végül is teljesen logikus. Köszönöm!Még egy apró (és alap) kérdésem lenne:
Akkor a custom View osztályban lesz egy mHandler = new Handler(); rész. Ha jól értem, ez rácsatlakozik az UI thread által létrehozott looper-re.
Amikor érintés történik, akkor kiadok egy mHandler.postDelayed() utasítást. Az ebben lévő runnable csak meghívja a custom View egyik metódusát, ill. utána ismét kiad egy mHandler.postDelayed() utasítást, amivel a saját maga után érkező "tick"-et indítja.Hogyan tudom ezt az egészet megállítani? Kiadok egy mHandler.removeCallbacks() utasítást? 1. De mi lesz ebben a runnable? Vagy egy runnable-vel meg tudom csinálni a fenti sort? 2. Azonnal megáll a végrehajtás, vagy a következő "tick" még lefut? 3. Ha leállítom, akkor rögtön indíthatok egy ugyanilyen ütemet, ugyanezekkel a példányokkal?
Előre is köszönöm, és bocsánat az alapvető kérdésekért. De nekem nagyon sokat segítettetek!
-
thon73
tag
Ezt pl. nem találtam meg. Lehet, hogy rögtön az elején megoldotta volna a problémát.
Fel sem merült bennem, hogy a jdk-t projektenként kellene beállítani.Ez egyébként azt jelenti, hogy minden egyes projektben változtatni kell, ha a JDK változik?
Már az alapmappában komoly eltérés van a gradle.properties és build.gardle file-okban. Nem mintha ezt nem lehetne épp javítani kézzel, csak csodálkozom, hogy ezek miért nem lépnek tovább, ha a környezet változik.
Az .idea-t kiveszem. Akkor azt majd mindig létrehozza? Ill. miért nem így van ez a gyári beállításban? (Na jó, ez az utolsó költői kérdés volt.)
Köszönöm!
-
_kovi_
aktív tag
Egy Postgre SQL adatbázisból olvasnék ki egy értéket amit egy másik Java-s program beállít. Tehát csak olvasás művelet lenne. A lekérdezés nyilván interneten keresztül történne később. De egyenlőre az is elég lenne ha a helyi gépen fejlesztett Postgres-hez tudnék csatlakozni.
Köszi!! -
Sianis
addikt
Oké, akkor nézzük példákkal, bocsi, hogyha nagyon absztrakt lett.
Tehát adott egy ViewPager, minden oldala egy-egy nap. Ezeknek a napokat Fragment-ek szolgálják ki, az adatokat pedig Loader tölti be, legyenek ezek a tételek kiadások, bevételek. Egy másik Activity-n pl be lehet állítani a tételek pénznemét. És amikor ez a pénznem megváltozik akkor minden a ViewPager által már betöltött oldalt, Loadert újra kell hívni, hogy ne $ hanem pl € legyen a pénznem ami meg van jelenítve. A ti példátok ezt ugye egy pull-os megoldással vinné keresztül, tehát onResume alatt minden oldal megnézné, hogy változott-e valami ami őt érinti. De meg lehet-e ezt oldani úgy, hogy push-olom a változás tényét? És nem csak ilyen szintű dolgokat szeretnék, hanem teszem azt, felkerül, módosul egy tétel a listában, akkor csak az a Loader frissítse magát, hiszen csak őt érinti.
Nem tudom, érthető vagy? Bocsi, ha amatőr kérdések ezek, valahogy ez nekem most nem triviális. Lehet már túl van gondolva a fejemben.
Köszi!
-
thon73
tag
Én semmit nem értek a telefon részhez, de talán segít tovább kutakodni:
A DW-tárcsázó felszíne zöldre vált, amikor felveszik. Nem amikor kicseng, hanem amikor fel is veszik. Az hogyan csinálja?
Egyébként már nekem is eszembe jutott, hogy a kicsengés lehetne kihangosított, és ha felveszik lehalkul, de ez az ötlet jobb. -
PumpkinSeed
addikt
Most csak az első google adandó lehetőséget linkeltem be ami a osm-re mutat, de a lényeg, hogy ennek az offline változatát használjuk ami ingyenes.
A megvalósítás úgy néz ki, hogy az osmdroid és slf4j jar-okat beintegráltuk és ezek alapján készítenénk egy térképét, de mindent úgy csináltunk ahogy kell és nagyon sok hibát dobot, ezeket sorban elkezdtük javítani, de ennek az eredménye csak még több hiba lett az amúgy nem bonyolult példaprogram pedig már egy kotyvalék lett. Most is jelen van kb. 60 sornyi hiba az Android Studioban, és úgy döntöttem valami más után nézek. Amúgy nem komoly csak suliban órára kellene, de mivel zh is lenne belőle jobb lenne valami kevésbé bugos térképszolgáltatás.
-
thon73
tag
Hát, mégiscsak gondban vagyok. Nem lehet a bind-dal megoldani.
Az InputMethodService-t védik a rosszindulatú szoftverektől; nem csatlakozhat hozzá, csak a system.Alighanem egyetlen lehetőség van: privát kommunikáció az editor (jelen esetben a preferences) és a billentyűzet között. Ez engedélyezett, csak éppen nem dokumentált. Fogalmam sincs honnan szedek pl. InputSession-t, meg hogyan kommunikálok.
Vagy ahogy korábban csináltam, a Service is nézi a preferences változását...
-
thon73
tag
Bocs, én AS-ban (preferncesen kívül) nem használtam még Activity-t. (Merthogy már jó ideje service-szel játszunk.) A fentiek kapcsán megnéztem a doksit, ezt írja:
dependencies {
...
compile "com.android.support:support-v4:18.0.+"
}Meg tudnátok mondani, hogy mi az a szám a végén? Ezt minden frissítéskor növelnem kell? Maga a doksi is hol 18-at, hol 21-et tartalmaz (gondolom, attól függ, mikor írták). Néha meg '+' jel van. Másrészt ezt tényleg kézzel kell beírni? Nem mintha nem lehetne épp beírni, csak szokatlan, hogy nem valami csicsás settings van hozzá.
Gondolom, ez sokaknak már teljesen egyértelmű, de talán másoknak (hozzám hasonlóan) kicsit kínai... -
fatal`
titán
Én nem januárban regisztráltam, hanem rögtön akkor, amikor elérhetővé vált nálunk az alkalmazáseladás.
Elképzelhető, hogy azóta kivették ezt az opciót, bár nem értem mi okuk lenne rá. Emlékeim szerint ha magánszemélyt választasz akkor is vállalkozásnévnek hívja talán a textboxot ahova be kell írni a nevet, de ez szerintem nem lényeges az adózás szempontjából.
De persze működhet a dolog egyéni vállalkozóival is.
-
Oppenheimer
nagyúr
4. lépésben az Injector # initializeApplicationComponent metódusában a Builder appContextModule metódusában az appContextModule paraméter honnan jön? Nem látom sehol deklarálva a scope-ban, és természetesen fordítási hibát okoz nálam.
Az meg tök OOP ellenes, hogy publikussá kell tenni a fieldeket, hogy tudjon injektálni a Dagger... rendben van ez az egész koncepció egyáltalán?
-
vlevi
nagyúr
"readMessage-et a másik Activitydbe kéne írni, nem ide "
Az is igaz...
Amikor elkezdtem írni a saját hozzászólásomat, még nem láttam a példakódot.
De maradhat a fő Activityben a beolvasás, mert, ha ki akarod írni egy textbe, amit gombnyomásra lehet szerkeszteni, és utána a módosítást megjeleníteni.
Én legalábbis (1, vagy 2 heti Adroid ismerettel) úgy csinálnám, ahogy leírtam.
-
automATIc
csendes tag
public class MainActivity extends AppCompatActivity {
EditText editText;
TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText = (EditText) findViewById(R.id.editText);
textView = (TextView) findViewById(R.id.textView);
textView.setVisibility(View.GONE);
}
public void writeMessage(View view){
String Message = editText.getText().toString();
String file_name = "user_data";
try {
FileOutputStream fileOutputStream = openFileOutput(file_name,MODE_PRIVATE);
fileOutputStream.write(Message.getBytes());
fileOutputStream.close();
Toast.makeText(getApplicationContext(),"Message saved",Toast.LENGTH_LONG).show();
editText.setText("");
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void readMessage(View view){
try {
String Message;
FileInputStream fileInputStream = openFileInput("user_data");
InputStreamReader inputStreamReader = new InputStreamReader(fileInputStream);
BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
StringBuffer stringBuffer = new StringBuffer();
while ((Message=bufferedReader.readLine())!=null)
{
stringBuffer.append(Message +"\n");
}
textView.setText(stringBuffer.toString());
textView.setVisibility(View.VISIBLE);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
public void showClick(View view){
if (view.getId() == R.id.showTextButton);
Intent sb = new Intent();
sb.setClass(this, ReadText.class);
startActivity(sb);
}
}Kb. itt tartok most. Azt szeretném, hogy az Activity mutassa a beírt szövegemet.
Egyelőre ezt az "adatbázist" tudtam kiCopyzni ami működik is[ Módosította: Karma ]
-
Oppenheimer
nagyúr
Rossz helyről hívtam meg a refreshFriends metódust, és a megfelelő dolgok együttállásával előfordulhatott, hogy valid accessToken nélkül indítottam a Facebook felé GraphRequestet. Az accessToken kezeléséhez a Facebook SDK abstract AccessTokenTracker osztályából származtam le, és az App elindulásakor még nincs accessTokenem, mindig csak pártíz - párszáz miliszekundummal később, mert ez valahogy jön a szerverről (el van előlem rejtve a működése). refreshFriends-et csak akkor szabad meghívni, ha már van accessToken.
debug módban annyival lassabb lehetett az alkalmazás, hogy megjött a Facebooktól az accessToken, mielőtt a GraphRequest kérés megtörtént volna. Legalábbis ez a tippem.
Megoldás az volt, hogy az App indulásakor megnézem, hogy az accessToken null-e, és ha igen, akkor nem hívom meg a refreshFriends-et. Ehelyett meghívom a tokenTrackerben, ha érkezik egy új token, ami nem null.
Ezt régen is hasonlóan csináltam, de azóta refaktkráltam a kódot, mert kurva zajos volt, és ekkor mászott bele a bug.
-
thon73
tag
Lehet, hogy hülyeséget kérdezek.
Ha csupán egy tizedes pontosság kell, akkor nem lehet kerekítéssel használni a double-t? Mert a hiba mindig csak a sokadik értéken jelentkezik?
((Én egyébként ilyen "kis" értékeknél szoktam int-et is használni, 100 v. ezerszeres szorzóval. Pl. képernyőméret és szövegméret kiszámításánál.))Mondjuk, biztos, hogy a BigDecimal a legpontosabb, csak igen kacifántos. Na jó, ez nem igazi androidos kérdés.
-
thon73
tag
Igen, többek között pont ezért szerettem volna enum-ot használni. Rosszul fogalmaztam: már a C-ben is nagyon szerettem, amikor még tized ennyit sem tudott.Mondjuk azt még mindig nem értem, hogy pontosan mi is az, ami olyan "nagy". Egy integer konstansnál nyilván nagyobb, de egyébként éppen pont akkora kell legyen, mint egy másik objektum-hivatkozás (mármint egy osztálypéldányban.)
Vagy az osztály létrehozásához szükséges nagyobb terület? De számít ez az egyszeri fél-egy kilobyte?Most már egy egyre speciálisabb billezeten ügyködünk, ahol eredetileg 1000 billentyűvel számoltam. Ha ezt beszoroztam egy-egy osztálypéldánnyal, akkor elég elképesztő értéket kaptam. (Többet, mint az első számítógépem agya, pedig ez csak egy billentyűzet.)
Viszont magát a billentyűzetet képként jeleníti meg. Nekem csak kb. félmillió képponttal kell számolnom, de az új gépeken ez megtöbbszöröződött. A képek mérete mellett eltörpül a - humán fogalmak szerint - gigantikus adatmennyiség. (jó, ettől még nem kell pazarolni.)
Viszont rögtön jött ebből egy másik kérdés is: a dokumentáció óvva int a képek gátlástalan használatától, mert elfogy a terület. Nem töröltem ki az elavult képeket (véletlenül), és érdekes módon nem kapok hibaüzenetet még sok-sok egész képernyőnyi tárolt kép mellett sem.
Megváltozott vajon a memóriakezelés, és nagyobb területet kap a program? A dokksi szerint 16 mbyte körül van minden program lekorlátozva, aminek már számításaim szerint el kellett volna fogynia. -
Zedz
addikt
Arra gondolok, hogy amikor előre kiválasztom, akkor belegenerál az Activitybe egy csomó mindent. Ezeket honnan tudom megszerezni? Most tanulom csak a dolgot, és a Mainnek Nav típus helyett Blankot adtam meg. Inkább újra kezdtem a projektet, de kíváncsi vagyok ezt kézzel hogyan lehet később forkolni.
-
thon73
tag
Köszi! Nyilván azért, hogy rátehénkedhessek közben az érintőpanelre
Multitouch esetén viszont ez érdekes kérdéseket vet fel, mert lehet, hogy a felhasználó ujja még ott van a módosító billentyűn, amivel a stylus érintését módosítaná. Több billentyűzeten megnéztem, ez a probléma megvan - és technikailag nyilván megoldhatatlan. Majd kigondolom, hogy melyik feltételezés (tartja/elengedi) okozza a kisebb hibát... -
WonderCSabo
félisten
-
Oppenheimer
nagyúr
Most, hogy elkezdtem beépíteni mindenféle aszinkron hívásokat az alkalmazásba, felmerült a gondolat, hogyha történik egy aszinkon callback, és abból a callbackból értesíteni akarok különböző lista adaptereket az adataik megváltozásáról (notifyDataSetChanged), akkor azt hogyan tehetem meg ebben a szálban. Elvileg notifyDataSetChanged csak UI szálból hívható meg. Például itt ez a Facebook Graph Request. Ennek az onCompleted callback-je nem a főszálon fut. A benne meghívott onFirstAppStart metódusból szeretnék értesíteni egy adaptert. Ez Otto-val megoldható? Úgy látom ehhez az SO kérdéshez hasonló a problémám, de erre nem érkezett sok válasz.
-
repvez
addikt
Ha az a 2 éves ért angolul és elég értelmes akkor talán menne
DE forditott helyzetre is igaz, hogy számomra is ugy kéne elmagyarázni, hogy megértsem .
Eddg egyszer sikerült C++ ban egy képlet kiszámolós progit sima dosos ablakban karakteres modban futathatót készitenem. a cin és cout parancsok használatával. -
Oppenheimer
nagyúr
Huh, köszi ismét a részletes segítséget.
Egyébként azt akarom majd megvalósítani, hogy a legutolsó 30 exceptiont tárolom az eszköz SharedPreferences-ében, és ha lejjebb görget a felhasználó, akkor elkezdi fetchelni a többit a szeverről. Ha van neki 1000 exception-je tárolva a szerveren, és elkezd lefelé görgetni, mint állat, akkor mennyit cellát érdemes egyszerre a memóriában tartani?
A fentiek ismeretében melyik megoldást javaslod?
-
Karma
félisten
Most esett le amúgy, hogy SharedPreferencest használsz az adatok tárolására, így az egész litániámra semmi szükség. Fel tudsz iratkozni az SP változásokra - ha ezt használod a fragment onAttach/onDetachban, kész is vagy.
-
Oppenheimer
nagyúr
Ha megváltoznak az adatok, hogyan tudom elérni a fragmentet, amiben a lista van? Jelenleg így épül fel az UI:
MainActivity így néz ki:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.attilapalf.exceptional.ui.main.MainActivity">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.PagerTabStrip
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
/>
</android.support.v4.view.ViewPager>
</RelativeLayout>Tehát ez egy lapozható felület, 3 oldala van. Itt van a MainPagerAdapter kódja:
public class MainPagerAdapter extends FragmentPagerAdapter {
public MainPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new MainFragment();
case 1:
return new ExceptionsFragment();
case 2:
return new FriendsFragment();
default:
return new MainFragment();
}
}
@Override
public int getCount() {
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "Main";
case 1:
return "My Exceptions";
case 2:
return "My Friends";
default:
return "unknown";
}
}
}Az ExceptionsFragment kódja pedig itt van. A notifyDatasetChanged() metódusát szeretném valahogy meghívni a MainActivity throwMeExcClicked(View) metódusban:
private static String makeFragmentName(int viewPagerId, int index) {
return "android:switcher:" + viewPagerId + ":" + index;
}
public void throwMeExcClicked(View view) {
Exception e = Exception.getRandomException();
synchronized (this) {
if (mLocation == null) {
setLocationExceptions.add(e);
} else {
e.setLocation(mLocation);
exceptionPreferences.addException(e);
}
}
String fragmentTag = makeFragmentName(R.id.pager, 1);
FragmentManager fragmentManager = getFragmentManager();
Fragment eFrag = fragmentManager.findFragmentByTag(fragmentTag);
// jó volna valahogy elérni az ExceptionsFragmentet!!!
} -
Zedz
addikt
Köszönöm, elolvastam!
Igazából már most világos, hogy először a Java és egy nagy adag tutorial, gyakorlás kell ide kezdésnek. A logout bejegyzésed olvasva a Xamarin előnyeit max akkor érezném meg, ha mind a 3 platformot valamennyire már ismerném, valamennyit dolgoztam volna már bennük.
Ha már tutorialok. Én eddig ezt néztem ki. Ismered esetleg? Ha ez nem jó, tudnál mást javasolni?
Új hozzászólás Aktív témák
Hirdetés
- Tőzsde és gazdaság
- Humanoid robotokat visz az AI-szervergyárba az NVIDIA és a Foxconn
- Kerékpársportok
- Mibe tegyem a megtakarításaimat?
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- Milyen billentyűzetet vegyek?
- AliExpress tapasztalatok
- Milyen házat vegyek?
- EAFC 25
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- További aktív témák...
- Inspiron 5406 2-in-1 14" FHD IPS érintő i5-1135G7 16GB 512GB NVMe magyar vbill ujjolv aktív toll gar
- Eladó ASUS TUF F15 Gaming laptop i7-11800H RTX 3050 Ti 32GB 1.5TB SSD
- (50db) 250GB SATA Bazár (Samsung, Kingston, Crucial, Sandisk stb.)
- Lenovo LOQ 15APH8 15.6" FHD IPS Ryzen 7 7840HS RTX 4060 16GB 512GB NVMe magyar vbill gar
- Okostelefonok és eszközök felújítása, akkucsere, törött kijelző csere, ODA-VISSZA FUTÁRRAL IS!
- ÁRGARANCIA!Épített KomPhone i5 13400F 16/32/64GB RAM RTX 4060 Ti 8GB GAMER PC termékbeszámítással
- Telefon felvásárlás!! Samsung Galaxy A70/Samsung Galaxy A71/Samsung Galaxy A72
- Telefon felvásárlás!! Xiaomi Redmi 9, Xiaomi Redmi 9AT, Xiaomi Redmi 10, Xiaomi Redmi 10 2022
- Kingmax 1x2GB DDR2 800 RAM eladó
- Bomba ár! HP EliteBook 830 G5 - i5-8G I 8GB I 256GB SSD I 13,3" FHD I HDMI I Cam I W11 I Gari!
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest