Új hozzászólás Aktív témák
-
SektorFlop
aktív tag
válasz
SektorFlop
#4054
üzenetére
Végül ez segített rajtam, ha esetleg másnak is lenne majd ilyen problémája.
-
válasz
SektorFlop
#4056
üzenetére
ADB-vel érdemes volna ránézni a készülékre, hogy tényleg megvan-e a könyvtár és van-e írási jog kiadva.
-
válasz
SektorFlop
#4056
üzenetére
Lehet, hogy nem external storage-nak minősíti a készülék a helyet, ahova írni szeretnél, ezért nem elég neki az engedély (vagy nem FAT filerendszer van rajta és a processnek nincs a fájlrendszerben joga az íráshoz).
-
válasz
SektorFlop
#4054
üzenetére
Gondolom az adott készüléken nincs /storage/sdcard1 path. Próbáld meg dinamikusan meghatározni a path-t:
[link] -
WonderCSabo
félisten
válasz
SektorFlop
#2828
üzenetére
Az Android Studio iszonyat sokat indexel, és nem látom, hogy sokkal gyorsabban adná fel a kódkiegészítést stb. mint az Eclipse, de mindenesetre ez van. Ilyenkor az egész GUI is kifagyhat, sajnos meg kell várni. Ha már kész, és újból megnyitod a projektet, akkor nem csinálja.
-
thon73
tag
válasz
SektorFlop
#1493
üzenetére
Köszi SektorFlop! Én már feladtam, pedig klassz lenne

Feladat a következő: van egy listfragment balról, bármelyik elemét tappintva annak részletei megjelennek egy - nevezzük így - editfragmentben jobbról. Az editfragment mintegy "kiúszik" az elemből, majd "visszaúszik" a listába. A nehézséget az jelenti, hogy az editfragment eltűnése UTÁN a listfragment a teljes képszélességet foglalja el.
Ameddig eljutottam: A két fragment egy linearlayoutban volt. Az editfragment lassabban tűnt el, mint a helyéül szolgáló frame, így az animáció nem látszott.
Az a gyanúm, hogy átfedő fragmentekkel kellene dolgoznom (framelayout) és a programból beállítani a szélességeket. Igaz, hogy a listfragment így is azonnal elfoglalná a teljes szélességet, de legalább látszana az átfedő editfragment animációja. Ehhez a történethez viszont elég sok elvarázsolt számítás kellene - különösen, ha hozzávesszük, hogy más az elrendezés fekvő és álló módban.
((Extraként még jobb lenne, ha az activity-k is így animálnának, csak teljes képernyőben. De ez már egyszerűbb ügy lesz.))
Minden jó ötletet köszönök! -
SektorFlop
aktív tag
válasz
SektorFlop
#1432
üzenetére
Én buta, mindent szépen megcsináltam, csak valahogy elfelejtettem implementálni az interface-t az activity-hez... pedig úgy emlékeztem hogy azzal kezdtem, így azt nem is nagyon nézegettem...

-
thon73
tag
válasz
SektorFlop
#1424
üzenetére
Az a lényeg szempontjából mindegy. Az első példa sem list-tel operál.
Szívfájdítóul: én se vagyok otthon, viszont most éjjel is majd 30 fok van, ráadásul a tengerre néz az ablak... de hogy nekem se legyen olyan jó, holnap nyakig öltönyben előadás![;]](//cdn.rios.hu/dl/s/v1.gif)
-
thon73
tag
válasz
SektorFlop
#1412
üzenetére
Írtam egy kis programot hozzá. EZT vettem alapul. És ITT a bővített program zip formában.
A teljes arraylist-et az outputFragment kezeli. Amikor az inputFragment-en beírsz, az értéket elküldi az Activity-nek, az Activity pedig továbbküldi az outputFragment-nek. Ez utóbbi írja be a list-be, és frissíti a listát.
A Te esetedben nem az activity, hanem a db hordozza az adatot. De az array-t szerintem a listfragmentnek kéne kezelnie (vagy az activity-nek).
A lényeg: MINDENKÉPPEN jeleznie kell az inputFragmentnek a ListFragment irányába, hogy új elem érkezett!! Ezt nem fogja (szerintem) beépített on... metódus megtenni, neked kell megcsinálni. VAGY: a LOader osztály már megcsinálja "magától".A példa globális adapter változót használ, de a getListAdapter() is jó, csak a típusát módosítani kell (uis. nincs benne notifyDataSetChanged)
public void refreshOutput( String data )
{
// 1. érdekes: ez is működik
// lista.add( data );
// 2. adapter írja be - azonnal kiírja
// adapter.add( data );
// 3. invalidateviews - azonnal működik
// lista.add( data );
// getListView().invalidateViews();
// 4. notify
lista.add( data );
adapter.notifyDataSetChanged();
}A fenti kódban váltogasd a kommenteket, de szerintem nem ez a baj, hanem a ListFragment nem kap értesítést. ((Hogy az 1. példa miért működik, azt nem tudom, annak nem lenne szabad.
))Ja, igen. A forgatás (újraindítás) törli a listánkat, de most nem is ez volt a feladat. Neked meg a db úgyis megmarad.
Remélem segítettem
-
thon73
tag
válasz
SektorFlop
#1410
üzenetére
Amikor megnyomod a gombot, akkor a db.newCostRow(c); betölti az adatokat egy adatbázisba. Két sorral később a cm.setCostItem(); "visszatölti" az adatokat az ArrayList-be?
Hogy fér hozzá a Fragment1 a cm listához?
Itt történik a megjelenítendő lista feltöltése?
Mert ha igen, akkor a bibi valahol a két Fragment kezelésében lesz. Ha itt lecserélted a komplett listát, akkor itt kellene értesítened az Adaptert vagy a ListView-t, hogy változott a helyzet. De a Fragment - elvileg - közvetlenül nem férhet hozzá egy másik Fragment adataihoz (különösen nem a ListView-hoz).
Ha a Fragment1 változtatja az adatokat, akkor neki "üzennie" kéne az Activity-n keresztül, hogy Fragment2 frissítse a listát. Vagy. Fragment1 csak bekéri és átadja az adatokat, majd üzen Fragment2-nek (aki a listát is tartalmazza), hogy a bekért adatokkal frissítse az ArrayList-et is, és a listát is.
De lehet, hogy csak bennem nem állt össze, bocs. -
fatal`
titán
válasz
SektorFlop
#1401
üzenetére
Szerintem neki inkább (nem tudom SQLiteban megy-e, ms sqlezek, azt is inkább csak alapszinten, egyelőre):
SELECT a.id AS a_Id, b.Id as b_id FROM a LEFT JOIN b ON b.a_id = a.id
Utána a Cursorral tud a_Id-ra és b_Id-ra hivatkozni.
-
thon73
tag
válasz
SektorFlop
#1363
üzenetére
A segítségnyújtáshoz esetleg egy kis kódot tudsz küldeni?
((Az ArrayList miatt nem a tökéletes megoldás számodra, de a CursorLoader-ről találtakat itt foglaltam össze: [link] Főleg a beillesztett külső cikkek miatt írtam ide.))
Még annyi jutott eszembe, hogy az Adapter által látott ArrayList-et leellenőrizted? Biztosan belekerült az adat?
Üdv! -
thon73
tag
válasz
SektorFlop
#1354
üzenetére
Én ugyanezt egy Loader-rel oldottam meg. A konkrét esetben egy CursorLoader-rel, ami nagyon szépen működik automatikusan. Van benne egy filterként működő EditText, ott restartLoader-rel ki tudom kényszeríteni, hogy újra elkészítse a listát.
Korábban ListActivity-ben volt szükségem hasonló megoldásra. ((A kikeresett elemet átszínezte.)) Ott a list.invalidateViews() segített. Ez egy kicsit más oldalról működik, de végső soron ez is újra lekérdezi a megjelenítendő adatokat az adapter-től.
Ha szükséges, este kódokat is tudok küldeni.
Addig ezt érdemes elolvasni: Is there any difference between `ListView.invalidateViews()` and 'Adapter.notifyDataSetChanged()'? -
lordjancso
senior tag
válasz
SektorFlop
#1354
üzenetére
Amikor beállítod a ListView adapterének az új elemeket, utána hívj meg egy frissítést az adapteren:
adapter.notifyDataSetChanged(); -
Karma
félisten
válasz
SektorFlop
#1272
üzenetére
Példám most nincs, de a lehető legegyszerűbb megoldás az, ha van egy vízszintes LinearLayoutod, a két gyereke szélességét 0dp-re állítod, és a layout_weightet 1-re. Ez a szülő LinearLayout pedig match_parent széles.
Dave-11: A MediaPlayerezést inkább felejtsd el, használd helyette a SoundPoolt. Miután betöltötted a hangokat, a play metódus visszaad egy ID-t, amivel leállíthatod a már játszottat az új indításakor.
-
Karma
félisten
válasz
SektorFlop
#1270
üzenetére
Igen. Mind a kettővel meg lehet csinálni.
Mi a kérdés? -
kemkriszt98
tag
válasz
SektorFlop
#1263
üzenetére
Azért egy "tankönyvben" egy ilyesmit igazán megemlíthetnének
kösz. -
kemkriszt98
tag
válasz
SektorFlop
#1259
üzenetére
Lévén ez a mainactivity-ben van így az Eclipse generálta a kódot így annak ott kell lennie.... Ha haza érek bemásolom a kódot.
-
trisztan94
őstag
válasz
SektorFlop
#1190
üzenetére
A Safe mode lényege az (is), hogy ne indulhasson el third-party alkalmazás, így nemigen hiszem, hogy megvalósítható.
-
SektorFlop
aktív tag
válasz
SektorFlop
#1166
üzenetére
Közbe rájöttem, nem az adapterrel volt baj, hanem a layout-ban nem adtam meg fix széllességet a elemeknek.
-
Karma
félisten
válasz
SektorFlop
#1164
üzenetére
Szerintem azzal nem nagyon tudsz mit csinálni, hiszen a listaelemeket le kell gyártani...
StackOverflow-n mondjuk láttam egy olyat, hogy ha a listának a layout XML-ben adsz egy cacheColorHint attribútomot, akkor sokkal többet GC-zik.Tehát ha esetleg állítottál ilyet be, vedd ki.
-
Karma
félisten
válasz
SektorFlop
#1161
üzenetére
Ha esetleg nem így lenne, csináld meg úgy az adapteredet, hogy újrahasznosítsa a View-kat, ne pedig minden egyes lépésnél újat hozzon létre. A getView metódus convertView paraméterében beeső Viewt tudod erre használni.
-
Sianis
addikt
válasz
SektorFlop
#1152
üzenetére
És más launcherrel nem ír ilyet?
Sianis
-
Sianis
addikt
válasz
SektorFlop
#1149
üzenetére
Nem lehet, hogy ez csak valami teljesen általános figyelmeztető szöveg? Van bármilyen észrevehető hatása?
Sianis
-
válasz
SektorFlop
#971
üzenetére
Sztem eltévesztetted a topicot.

-
trisztan94
őstag
válasz
SektorFlop
#952
üzenetére
Hagyom a linuxot
felraktam ugyanúgy WIN7-re is az ADT bundle-t, de itt is ugyanaz a probléma, semmi sem történik, hozzáadtam a path-hoz a az sdk-t és a platform tools-ot is, de semmi, cmd-ben az ant debug, illetve android* parancsokra azt írja, hogy nem ismeri. DDSM viszont megtalálja a telit.
Logcat sem ír semmit az ég világon
-
trisztan94
őstag
válasz
SektorFlop
#950
üzenetére
DDSM az micsodá?

A rendszer felismeri, kidobja, hogy galaxy nexus. Szerintem rosszul adtam hozzá a PATH-hoz az androidot illetve a függőségeit, de már kezd nagyon tele lenni a fszom vele

Azt gondolná az ember, hogy linuxon sokkal jobb lesz az android dev, mert ugye az is azon alapul ....

Egy sima hello world-öt sem ír ki, semmi.
-
Sianis
addikt
válasz
SektorFlop
#879
üzenetére
Itt néznék szét.
Sianis
-
Karma
félisten
válasz
SektorFlop
#879
üzenetére
Mármint mire?
-
pittbaba
aktív tag
válasz
SektorFlop
#842
üzenetére
Azzal meg az a baj, h emulatorban sem wifi, sem bluetooth, ezért hibával elvérzik az app, ez sem járható út.

-
fatal`
titán
válasz
SektorFlop
#845
üzenetére
Nem.

A Task Managerben igazából az utoljára futtatott alkalmazások vannak, akkor is ottmarad, ha már kilőtted / a rendszer kilőtte.
-
pittbaba
aktív tag
válasz
SektorFlop
#840
üzenetére
LogCAt-et nem látok, mert BootReceiver indítani boot után az alkalmazás saját magát, így mivel teszteléshez újra kell indítani a programot, a telefon disconnectel az eclipse-ről, és nem látom a Logcat kimenetét

Nem tudom mivel van a baj, sima indításkor nincs gond, sőt ha onStop-ban indítom a MainActivity-t akkor vissza is jön rendesen, egyedül a BootReceiver-nél hibázik az indítás, hibával kilép a program a legelején. -
pittbaba
aktív tag
válasz
SektorFlop
#827
üzenetére
Szia!
Az az út sajnos ugyanezt a hibát hozta sajnos, pedig előtérbe kényszerítéshez, onStop-nál ugyanezekkel a sorokkal visszajön a program előtérbe hiba nélkül, tökre nem értem miért szállhat el.
-
fatal`
titán
válasz
SektorFlop
#818
üzenetére
Kérd le a futó processzek listáját (külön jog kell hozzá) és abból tudod ellenőrizni.
-
pigster
senior tag
válasz
SektorFlop
#704
üzenetére
...megkönnyíteni a tanulni vágyok kedvét... <-- ez magyarul van?
-
Konair
csendes tag
válasz
SektorFlop
#693
üzenetére
http://www.cypressnorth.com/blog/mobile-application-development/android-studio-not-working-in-windows-7-or-8-fixed/
-
thon73
tag
válasz
SektorFlop
#684
üzenetére
Köszi!
-
fatal`
titán
válasz
SektorFlop
#611
üzenetére
Ehhez nem kell Vbox, a gyári emulátor fut vt-vel és gyors. A VirtualBoxos verzióból 2.2 volt a legújabb, amikor néztem és elég körülményes használni, akkor már inkább a bluestacks.

Ja és az a 2.2-es verzió szintén nem emulált opengl-es 2.0-t, így én nem mentem vele semmire. Normál appok fejlesztéséhez persze jó lehet (és közben valószínűleg van már újabb verzió is).
-
Karma
félisten
válasz
SektorFlop
#581
üzenetére
Alt + balshift?

-
thon73
tag
válasz
SektorFlop
#573
üzenetére
Kellene. Elvileg. A LogCat tele lesz hibával, ha nem zárod, de a program működik. Alattomos.
A lista jó, ilyen szempontból, csak zabálja a memóriát. Mindent kétszer tárolsz, másolsz, stb. Én csak próbálgatom az SQLITE-t, de a végleges megoldásban több, mint kétszázezer rekordot kellene kezelnem. igaz rövidek, az egész nincs 10 mega. -
thon73
tag
válasz
SektorFlop
#571
üzenetére
Sianis-nak: Igen, ez fontos észrevétel, nem gondoltam rá. Így már akkor is visszaáll az elejére, ha csak pl. megnézek külön egy rekordot, hiszen más Activity kerül előtérbe. Hm.
Ez a téma szerintem sokaknak okoz fejtörést. Honeycomb felett változott egyébként a megközelítés (és én még nem tartok ott), de sajnos, a konkrét probléma ettől még megmarad.
A probléma veleje: az Activity az onCreate-onStart-onResume metódusokon kersztül indul, és rendre az onPause-onStop-onDestroy metódusokon áll le. Ezek persze párban állnak, tehát ha csak az onPause-ig jut a leállás (más kerül az előtérbe), akkor az onResume ponton éled fel a program.
Ez azt jelenti, hogy az onCreate-ben megnyitott adatbázist az onDestroyban kellene bezárni. Ha előbb zárjuk be (pl. onPause), akkor visszatéréskor (onResume-tól kezdődik), nem lesz nyitott adatbázisunk (mivel a megnyitást végző onCreate nem kerül meghívásra!)
DE! ÉS ITT JÖN A BAJ! Az Android rendszer - ha fogy a memória - CSAK AZ ONPAUSE VÉGREHAJTÁSÁT GARANTÁLJA! Simán kihagyja az onDestroy-ban lévő zárást.
Az adapternek viszont végig szüksége van a nyitott adatbázisra, ill. a hozzá tartozó cursorra. Ezért jutottam oda, hogy a listát az onResume-ban kell lekérdezni és megalkotni, aztán az onPause-ban bezárni. Sianis-nak azonban igaza van, ezzel minden apró-cseprő dolog miatt újraépül a lista.Kérdések:
- lehet, hogy nem kell törődni az onPause utáni kényszerleállással? A vélemények szerint kell, saját tapasztalatom nincs (túl nagy a memóriám
)
- javítja-e a helyzetet, ha onPause-ban pl. a lista helyzetét is tároljuk?
- van-e valakinek precízebb ötlete?
- javasolják a singleton-t (Application-ból származtatva), ami járható út; így ugyanis a teljes Application (és nem Activity!) futás alatt nyitva marad az adatbázis (és a cursor). De honnét tudom, hogy véget ért a történet, és be kell zárni az adatbázist?Néha nem látom át, hogy milyen logika alapján képzelték el ezt az egészet. Igaz, én csak amatőrben játszom...
-
Sianis
addikt
válasz
SektorFlop
#553
üzenetére
Van a DB kezelőnek amit te tudsz örököltetni egy ilyen metódusa: onCreate. Ebben kell létrehoznod a táblákat és ebben tudod feltölteni is induló adatokkal. Ez csak egyetlen egyszer fut le, amikor legelőször létrejön az adatbázis.
Szerk: #544
Logoltasd ki, hogy mi lett a query szövege. Úgy talán egyszerűbb lesz rájönni, hogy jól állt-e össze a lekérdezés.Sianis
-
Sianis
addikt
válasz
SektorFlop
#519
üzenetére
Érdemes pedig, mivel nem tudni az újabb rendszerek meddig fogják támogatni.
-
Mbazsika
tag
válasz
SektorFlop
#516
üzenetére
Szenvedek vele, de értékelhető produktumot még nem sikerült kicsiholnom belőle (a hiba bennem van vszinűleg)
-
thon73
tag
válasz
SektorFlop
#371
üzenetére
Én ES explorert használok. Abban külön engedélyezni kell, ha látni akarom a root-ként a mappákat. Különben üresnek látszanak. Nem ez a hiba? Sztem. init.d-nek lennie kellene, az linux alapmappa, nem az android rendszer használja. Bár én nem ismerek minden disztribúciót/változatot.
-
thon73
tag
válasz
SektorFlop
#369
üzenetére
Jogos. Hát ettől télleg nem lettünk okosabbak.
Nézd meg sztem az init.d-ben lévő file-ban (ennek nem írták a nevét, de minden init.d-ben lévő file minden sora végrehajtásra kerül) lévő rm sort, van-e ilyen? (((Ez egyébként egy egyszerű linux utasítás, mely minden indításkor végrehajtásra kerül (ezért van az init.d-ben), és kiveszi a log alól a könyvtárat. Ennek hiányában az nem tud hová írni, tehát nincs log. - Bár én nem vagyok linuxos guru)))
Nekem a /system/etc/init.d/-ben 6 db rövid file van, de egyikben sincs ez az rm... utasítás. Ezek viszont fontos rendszerfile-ok, óvatosan szabad belenyúlni! Lehet, hogy meghívnak más parancsfile-okat is (nálam igen), akkor érdemes azokat is lekövetni, hátha ott van furcsaság.
A szervízkódot (második hozzászólás) csak finoman próbálnám ki, nem tudom minden kernel-ben/gyártónál működik-e. De egy próbát megér, utána úgyis kernel csere, ha ezek nem működnek (és kell a log).A név is megtévesztő. A 2.3.6 nem ICS verzió. Gondolom a kinézetet vették át. ICS-nek látszó GB. Van ilyen. Csak nem tudom ez melyik.
-
thon73
tag
válasz
SektorFlop
#365
üzenetére
http://stackoverflow.com/questions/6941710/unable-to-open-log-device-dev-log-main-no-such-file-or-directory
Ez szerintem pont azt célozza, amit kérdezel. Érdekes. nem gondoltam volna, hogy ezt ennyire ki lehet kapcsolni.
Megírnád, melyik rom/kernel ez, és mit sikerült tenni?Bocs, két lépéssel lemaradtam. Akkor legalább annyit, amit a telefon névjegyénél kiír. Vagyis, ho. milyen rom ill. kernel. Köszi!
-
Yany
addikt
válasz
SektorFlop
#365
üzenetére
Ha Semaphore kerneled van, akkor a saját appjában kapcsold be a Logger opciót.

-
thyrpacia
csendes tag
válasz
SektorFlop
#349
üzenetére
Itt találsz rá megoldást: [link]
-
Ablakos
addikt
válasz
SektorFlop
#278
üzenetére
Igen, el is kell commitálni, hogy volt már futtatva.
onStop-ban ez legyen:
SharedPreferences sp = getSharedPreferences("DB_INIT", MODE_PRIVATE);
Editor et = sp.edit();
et.putBoolean("KEY_FIRST_RUN_FLAG", false).commit(); -
thon73
tag
válasz
SektorFlop
#278
üzenetére
Az nem megoldás, ha te magad mentesz el egy flag-et az első indításkor? Legjobb talán a preferences-be, de a saját file terület is egyszerűnek tűnik. Uninstall (törlés) során ez is törlődik, egyébként meg mindig ott lesz, és így ellenőrizhető, hogy volt-e már indítás.
-
Ablakos
addikt
válasz
SektorFlop
#275
üzenetére
onStart -ban valami hasonló kell:
SharedPreferences sp = getSharedPreferences("DB_INIT",MODE_PRIVATE);
Boolean isFirstRun = sp.getBoolean("KEY_FIRST_RUN_FLAG",true);
if(isFirstRun) itt jöhet az intent activity; -
pigster
senior tag
válasz
SektorFlop
#259
üzenetére
http://wiki.javaforum.hu/display/JAVAFORUM/Android-Suli
... hát jó lenne valahol ott folytatni, ahol ez abbamaradt
-
Dave-11
tag
válasz
SektorFlop
#257
üzenetére
Végül sikerült megoldanom, le is írom, hátha valaki hasonló hibába ütközne.
Így visszagondolva elég pitiáner kis dolog, de annyi volt a hiba hogy mikor a projektet csináltam az alkalmazás nevéhez olyan nevet választottam, amiben vannak ékezetek. Ekkor ugye alapból állítja a projekt nevét az Eclipse-ben is ékezetesre, és úgy hagytam. Aztán átírtam ékezet nélkülire és működött a dolog
Furcsa, azt hittem tudja kezelni az ékezetes betűket, de a lényeg hogy már ezt is tudom
Mellesleg SektorFlop, még te írtad itt valamikor hogy készítessz egy oldalt kezdőknek? Csak gondoltam emgkérdem hogy haladsz, kíváncsi vagyok már rá

-
válasz
SektorFlop
#250
üzenetére
köszi, érdekes dolgok vannak nála

-
válasz
SektorFlop
#241
üzenetére
Akkor hol kérdezzek?

-
lanszlo
csendes tag
válasz
SektorFlop
#204
üzenetére
A numerikus billentyűzeten a 7-es és 9-es.
-
Sianis
addikt
válasz
SektorFlop
#204
üzenetére
Ctrl+F11?
Sianis
-
Sianis
addikt
válasz
SektorFlop
#199
üzenetére
Esetleg összejátszhatod egy onActivityResulttal és egy startActivityForResulttal. Így biztosan tudod, ha vitt fel új adatot vagy nem.
Sianis
-
pakriksz
őstag
válasz
SektorFlop
#187
üzenetére
nem lehet. Ezt a kódot benyomod annak semmi hatása nem lesz ha már 15-ön van a hangerő. Ha itt 15-nél nagyobb számot adsz meg, egyszerűen ignorálja. 15 alatt meg ugyan azok a fokozatok mennek mint amúgy.
-
lanszlo
csendes tag
válasz
SektorFlop
#193
üzenetére
Biztos ismered, meg láttad ezt az oldalt, de ha mégsem, akkor ajánlanám a hivatalos android developer-ről a tutorialt ezzel kapcsolatban. Szerintem eléggé érthető és remélem választ kapsz a kérdésedre!

-
fatal`
titán
válasz
SektorFlop
#193
üzenetére
Az onStart biztosan nem jó, valószínűleg az onResume kell neked.
-
pakriksz
őstag
válasz
SektorFlop
#185
üzenetére
nem nyertünk hangszórót... nem lehet sajnos... az api szépen lekorlátozza...
Most csináltam egy seekbart, 100 fokozattal, ami változáskor setstreamvolumezik. 15-nél szépen eléri a max hangerőt és onnantól nincs hatása. 15 alatt megy, és ugyanúgy megmarad a 15 fokozat.Szívesen elbeszélgetnék azzal az idióta fejlesztővel aki így írta meg ezt a részét az apinak, hogy ezt most miért kellett így(mert technikai oka tuti nincs)? Arra gondolt, hogy vagy cigányhifizni fognak vele, vagy csak mindent mindig max hangerőn hallgató halláskárosultak fogják használni?
-
lanszlo
csendes tag
válasz
SektorFlop
#183
üzenetére
Köszi! Pontosan ezt értettem gyakorlati dolog alatt, hogy sok a példa

-
lanszlo
csendes tag
válasz
SektorFlop
#178
üzenetére
Köszi az infót, a jövő hét folyamán lehet bemegyek és belelapozok! Aki esetleg már megvette az tudna mondani róla pár szót? Főleg arra lennék kíváncsi, hogy mennyire gyakorlatias a könyv...
-
fatal`
titán
válasz
SektorFlop
#174
üzenetére
Nekem is ez a problémám.
-
Sianis
addikt
válasz
SektorFlop
#159
üzenetére
Tipp: A cikket ajánlhatod Facebookon.

Sianis
-
válasz
SektorFlop
#151
üzenetére
google > mysql webservice android
pl: [link]Ahogy nézegettem nincs natív mysql kliens android alá - így kell csinálni egy webservice-t valahol, ami kiszolgálja az sql kéréseket.
De mivel ez egy köztes réteg az adatbázis és a kliens között, egy csomó dologgal foglalkozni kell:
- mennyire publikus az adat
- ki adhat utasításokat a webservice-nek
- kellenek-e különbözö jogosultsági szintek (admin/user/guest)
- hogy biztosítja a környezet az felhasználó-ellenőrzés és az adatok bizalmasságát
- mekkora lesz az adatforgalom
- kell-e (mennyire kell) a felhasználói bevitelt ellenőrizni
- stb.
Szóval egy WS esetében is meg kell csinálni (le kell kódolni) azokat a biztonsági képességeket, amelyek egy fejlett adatbázisszerveren már léteznek (pl. azonosítás, jogosultságok kezelése, titkosítás) -
vz12
tag
válasz
SektorFlop
#139
üzenetére
Nos, én a fő-fő osztályomban definiált, és gyakorlatilag az egész (nem túl nagy) programomban globálisan (belülről) elérhető tömbökben tároltam az adatokat, így a getView-ban is elérhető volt, nem paraméterből jött be neki. Én egy gridView alá "toltam be" ezt a tömböt, amelyet bizonyos metódusok írtak, bizonyos metódusok olvastak, a grid frissítése meg volt oldva, illetve hát ugye a getView pontosan ezt végezte a módosítások után. Tehát a getView futásakor az adatok már aktuálisak voltak, és mivel "globálisak", ezért lekérdezhetők, felhasználhatók feltételek megfogalmazásához. Szerintem egy kurzort is lehet így használni, de ezt csak gondolom, nem tudom. Lehet hogy kifogásolható a módszerem, de nekem bevált és tetszik, nem látom a hátrányát.
Az említett másik módszer is biztosan járható, én magamnak ezt találtam ki erre a problémára.
-
Sianis
addikt
válasz
SektorFlop
#139
üzenetére
A SimpleAdapter a következő módon működik.
Adott egy List, ebben vannak a ListView sorai gyakorlatilag. A List Map-eket tartalmaz, ami általában String kulccsal, String értékeket tárol. Amikor te megadod a String tömböt az adapternek:
String [] from=new String []{DatabaseHelper.TerhelesNev,DatabaseHelper.TerhelesOsszeg,DatabaseHelper.TerhelesDatum};akkor azt mondod, hogy az ilyen String kulcsokkal elérhető elemeket vegye ki a List adott elemének Map-jéből, majd ezeket az érkeket a másik tömbben magadott id-val megtalálható TextViewkba állítsa be:
int [] to = new int [] {R.id.tvLeiras,R.id.tvKoltseg,R.id.tvDatum};
Ezt mit ad visza a LogCat-ben?
Log.d("Item class:", sca.getItem(position).getClass().getName())Sianis
-
vz12
tag
válasz
SektorFlop
#136
üzenetére
Én már csináltam ilyet. A position paraméter alapján behozod az aktuális adatot, amivel a getView éppen foglalkozik, majd ezután ezt az adatot építed be a feltételbe, nem magát a position-t.
Ha pl. egy kétdimenziós tömb 1. oszlopát jeleníted meg, akkor valahogy így kell ennek kinézni:mydata=tomb.get(position).get(0);
if (mydata==1) ...A relációs adatbázis mutat némi hasonlóságot a 2 dimenziós tömbbel, ezért hoztam ezt a példát, de a dolgot konkretizálni majd Neked kell. Ha szűrés van az adatbázison, akkor a helyzet persze bonyolultabb.
-
Sianis
addikt
válasz
SektorFlop
#136
üzenetére
Az állapotot meg valahogyan az adapternek megadott elemekből kellene kinyerned? Az adapternek van egy ilyen metódusa: getItem, amivel egy adott pozícióban lévő objektumot kapsz meg.
Ha jól látom a kódodból, akkor ez valahol a háttérben egy List-et rak össze amiben Map elemek vannak. a getItem elvileg egy ilyen Map-et fog neked visszaadni, de nem 100%, viszont ezt Java Debuggerrel könnyen kiderítheted vagy akár az Androidos loggerrel is.
Ebben az elemben ha minden elemed benne lesz ami a db adott rekordjában benne van, ebből már tudni fogod a státuszt és tudod állítani a háttér színét.
Jó így?

Sianis
-
Sianis
addikt
válasz
SektorFlop
#134
üzenetére
Szia!
1) Ez teljesen jó. Meg kellene nézni, hogy valahogyan nem hívod-e, hívódik-e meg kétszer.
2-3) Ez is jó, csak nincs benne a logika amivel beállítanád a háttér színét. Én a SimpleCursorAdapter-t örököltetném és a getView metódusát még megfejelném egy kicsit, valahogy így:
public class MySimpleCursorAdapter extends SimpleCursorAdapter {
public MySimpleCursorAdapter(Context context, int layout, Cursor c, String[] from,
int[] to, int flags) {
super(context, layout, c, from, to, flags);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = super.getView(position, convertView, parent);
if (position % 2 == 0) {
view.setBackgroundColor(Color.RED);
} else {
view.setBackgroundColor(Color.GREEN);
}
return view;
}
}Ezután pedig adapternek ezt adnám meg. Nem próbáltam ki, de szerintem így jó.
Szólj ha nem!Sianis
-
Sianis
addikt
válasz
SektorFlop
#130
üzenetére
1) Nem lehet, hogy az Activity-t kétszer indítod el és ezért kétszer lesz benne a back stackben?
2) Ennek a view-nak van valami layout (tehát XML) alapja? Mert akkor abba kell felvenni vagy még további TextView-kat vagy a meglévőket kell lekérni id alapján a findViewById metódussal és akkor tudsz még hozzáfűzni adatot.
3) Gondolom ListView-be kerül ez a dolog. Sor alatt most a lista egy-egy sorát értjük? Mert ilyenkor az adater getview metódusában meg tudod adni, hogy a view háttere milyen színű legyen. Kód nélkül nehéz így a megfejtést megmondani neked.
Illetve ha a kérdésekre válaszolsz akkor tudok még pontosítani.
Sianis
-
fatal`
titán
válasz
SektorFlop
#128
üzenetére
Új verzió, az indigo utódja

-
SektorFlop
aktív tag
válasz
SektorFlop
#109
üzenetére
ma volt egy kis időm, gondolom senkinek nem volt kedve vagy ideje átnézni azt a sok mindent amit írtam. Én kénytelen voltam, összerakni az egészet, most már megoldódott a problémám, a lekérdezés működik a tábla tartalma is megjelenik.
-
ArchElf
addikt
válasz
SektorFlop
#107
üzenetére
Hogy néz ki (pontosan) a tábla, és mi a konkrét select?
AE
-
ArchElf
addikt
válasz
SektorFlop
#100
üzenetére
Muszáj view-t csinálnod? Miért nem jó a sima select?
AE
-
Chipi333
csendes tag
válasz
SektorFlop
#104
üzenetére
Hát ebben a példaprojectben valszeg megtalálod amit szeretnél.
Ps.: A view-nak meg semmi köze nincs a megjelenítéshez. Az egy amolyan virtuális tábla lesz az adatbázison belül, ami egy select alapján van összerakva. Általában olyankor szokás csinálni ha több táblából összeszedett adatok kellenek és gyakran, de még akkor is ritkán elvileg, mert eléggé költséges a fenntartása.
-
rum-cajsz
őstag
válasz
SektorFlop
#100
üzenetére
Nem értek az SQLite-hoz, de nem így lenne helyes?
db.execSQL("CREATE VIEW viewFizetes AS SELECT FizetesHonap, FizetesOsszeg,FizetesEgyenleg FROM FizetesTable");
Esetleg segítene a hibaüzenet is.
-
Chipi333
csendes tag
válasz
SektorFlop
#100
üzenetére
Cursor c= db.rawQuery(viewFizetes,null);
Itt a viewFizetes-ben mi van? Mert ha pl "SELECT FizetesHonap, FizetesOsszeg, FizetesEgyenleg FROM FizetesTable" akkor kb működnie kéne a cursornak.
-
fatal`
titán
válasz
SektorFlop
#92
üzenetére
spec.setIndicator("Havi\negyenleg")
(#93) vz12: Én sem tudom mi az, de stringet vár és ott ez a szintaktika.

-
vz12
tag
válasz
SektorFlop
#92
üzenetére
Nem tudom hogy mi az a "setIndicator", de pl. "setText"-ben, vagy "Toast"-ban nekem így működni szokott:
"Havi\negyenleg"
-
SektorFlop
aktív tag
válasz
SektorFlop
#89
üzenetére
közbe meg van a hiba!
-
szoke12
őstag
válasz
SektorFlop
#79
üzenetére
sok minden változott azóta, de ha most is ilyen lenne, szerintem akkor is vinnék rendesen. elég stabil egy rendszer.
-
fatal`
titán
válasz
SektorFlop
#71
üzenetére
Ugyanavval a kódrészlettel? Nem használtam még a normál fejlesztői részt, csak játékot próbálok fejleszteni andenginenel, de: Ha külön eseményt szeretnél, totál más kódrészlettel akkor minden gombhoz külön listenert kell hozzáadni. Ha ugyanazt a kódrészletet akarod lefuttatni minden gombnál, akkor szerintem vagy a listenernek vagy a függvénynek van egy paramétere ahol le tudod kérni a küldő objektumot.
-
fatal`
titán
válasz
SektorFlop
#69
üzenetére
Eseményt kell hozzárendelned, ha jól emlékszem onClickListenernek hívják.
-
fatal`
titán
válasz
SektorFlop
#66
üzenetére
Minek kéne rendszert újra rakni? Létrehozol egy másik fiókot ékezet nélkül azt kész.
De még csak ezt sem kell bemész a mappába és az emulátornév.ini-ben átírod az elérési útvonalat, ott hagyod és elmásolod magát az emulátor mappáját ahova átírtad. Mert ha jól látom magát az elérési utat kinyeri ebből az ini fájlból úgyhogy érdekes hiba, pedig az is ékezetes mappanévben van.
-
szoke12
őstag
válasz
SektorFlop
#59
üzenetére
Nekem linux alatt olyan sebességű, mint egy telefon. bár a gépem nem egy erőbajnok.
-
fatal`
titán
válasz
SektorFlop
#59
üzenetére
Nem tudom, nem olvastam utána, mindenesetre nevetségesen fos az egész még az új gpu gyorsítással is.
-
szoke12
őstag
válasz
SektorFlop
#45
üzenetére
Köszönöm, megtaláltam!
Végre kezd éledezni a topic.
-
vz12
tag
válasz
SektorFlop
#47
üzenetére
Köszi az ötletet, reményteljesnek látszik. Leghamarabb csak ma este tudok a dologgal foglalkozni, majd megírom a fejleményeket.
-
szoke12
őstag
válasz
SektorFlop
#43
üzenetére
Igen, linux (ubuntu) alatt.
-
SektorFlop
aktív tag
válasz
SektorFlop
#40
üzenetére
közbe rájöttem a problémára, szólok mielőtt valaki írna.
-
socketbind
csendes tag
válasz
SektorFlop
#35
üzenetére
Csak hobbiprojektre de használtam már egyszer.

Tulajdonképpen arra ad lehetőséget hogy HTML5+CSS+Javascript alapú alkalmazásokat lehessen fejleszteni. Ez a gyakorlatban úgy valósul meg, hogy az alkalmazásod a felhasználó számára egy "teljes képernyős keret nélküli böngészőben" (WebView van mögötte) jelenik meg, a PhoneGap keretrendszer pedig olyan Javascriptből elérhető objektumokat regisztrál a WebViewen keresztül (addJavascriptInterface() hívás) amivel te elérheted például a kamerát, a kontaktusokat, a fájlrendszert.
Szerintem kifejezetten könnyű vele fejleszteni, a jQuery Mobileal együtt használva már nagyon szép alkalmazásokat lehet készíteni. Viszont ami egy picit lehangoló volt az én esetemben az a teljesítmény volt. Legalábbis nem volt annyira fürge a válaszidő mint a natív alkalmazásoknál.
Tippek:
- Ha főleg Honeycomb és azutáni Androidon futna az alkalmazásod és hosszas optimalizálás után is teljesítménygondjaid lennének akkor mindenképpen érdemes bekapcsolni a hardvergyorsítást. (android:hardwareAccelerated="true" a manifestben, nálam érezhetően javított a helyzeten)
- Ahogy említve volt a jQuery Mobile nagyon jól passzol hozzá.
- Kattintás érzeklésére ne a "click" eseményt használd hanem a "touchstart"-ot.
- Fenejó dolog a PhoneGap Build szolgáltatás ha több platformra is ki szeretnéd adni az alkalmazásodat.
-
Frigo
őstag
válasz
SektorFlop
#23
üzenetére
Új hozzászólás Aktív témák
- Vezeték nélküli fülhallgatók
- Samsung kuponkunyeráló
- Bemutatkozott a Poco X7 és X7 Pro
- NFL és amerikai futball topik - Spoiler veszély!
- Socket AM4
- Vezetékes FEJhallgatók
- MWC 2026: Bajnoki címre pályázik a Xiaomi Watch 5
- Projektor topic
- PlayStation 5
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- További aktív témák...
- HIBÁTLAN iPhone 13 Pro Max 256GB Sierra Blue-1 ÉV GARANCIA - Kártyafüggetlen, MS4224
- Sosemhasznált! HP OmniBook 5 Flip i5-1334U 16GB 512GB 14" áthajtós-érintős FHD+ Gar.: 1 év
- GYÖNYÖRŰ iPhone 14 Pro Max 128GB Deep Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3791
- Szerver / szerverterem / szerver infrastruktúra felvásárlás, 1-1db is, kiszállással, logisztikával
- Apple iPad Air 2 (A1566) 64GB Wi-Fi Asztroszürke
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


![;]](http://cdn.rios.hu/dl/s/v1.gif)
))
kösz.








