Új hozzászólás Aktív témák
-
WonderCSabo
félisten
Azért annyira nem bonyolult az Ora JDK telepítése.

-
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.
-
WonderCSabo
félisten
válasz
kemkriszt98
#2813
üzenetére
GPS nem játszik? Mert az sebességadatokat is szolgáltat, ami sokkal pontosabb eredményt ad.
-
WonderCSabo
félisten
Én Eclipse-et használtam eddig, nagyon szeretem, eléggé belaktam, még elég sokat contributoltam is az Android Maven Eclipse pluginba. Mivel úgy tűnik az Eclipse ADT totál halott, én is valszeg megyek át Android Studio-ra/IntelliJ-re. Bár van egy közösségi kezdeményezés az ADT továbbfejlesztésére, nem hiszem, hogy fel tudják venni a versenyt a Google fizetett fejlesztőcsapatával.
-
WonderCSabo
félisten
válasz
kemkriszt98
#2786
üzenetére
Esetleg megvárhatod, hogy a többi cucc betöltsőn, és már csak az animmak kelljen foglalkozni, szóval annak indítását átrakhatod onStart-ba, esetleg onResume ba. Persze ekkor figyelni kell, mert ezek egy Activty alatt többször meghívódhatnak. Egyébként ha nem látsz problémát akkor az onCreate uccsó hívása is jó lesz szvsz.
-
WonderCSabo
félisten
válasz
kemkriszt98
#2769
üzenetére
Először csak adj meg egy dummy útvonalat, és nézd meg, hogy tényleg a pont okozza-e. Egyébként inspiráció az SDF-hoz.
-
WonderCSabo
félisten
válasz
kemkriszt98
#2744
üzenetére
Ez alapján próbáltad ugye? Nekem jónak tűnik a kód. Tuti jó a csomagnév amit a receivernek megadták a manifestben (com.example)?
-
WonderCSabo
félisten
válasz
#79335424
#2721
üzenetére
Android-ban minden feladat, amit majd valaki el tud végezni, Intent-ként van kifejezve. Az, hogy ki tudja azokat elvégezni, az IntentFilter-ekben van definiálva. Ha egy app kidob egy Intent-et, akkor a rendszer megpróbálja feloldani azt, azaz megkeresni, hogy ki tudja azt elvégezni. Ha a Te alkalmazásodban van olyan komponens, amiben az IntentFilter illeszkedik az Intent-re, akkor megjelenik.
http://developer.android.com/guide/components/intents-filters.html
-
WonderCSabo
félisten
Ez a topik Android alkalmazásfejlesztésről szól, nem felhasználói támogatásról. Léci fáradjatok át ezzel a kérdéssel más topikba.
-
WonderCSabo
félisten
válasz
BalanceR
#2705
üzenetére
Magyarul online jó forrást nem tudok, viszont a Google hivatalos trainingje iszonyat jó.
-
WonderCSabo
félisten
Ezt benéztem srácok, tök jól működik a multiline inputType-al, csak utána én a kódból felülírtam azt...
-
WonderCSabo
félisten
Sziasztok!
Van egy kérdésem, SO-n már fel is tettem. A lényeg az, hogy word wrapes EditText-et szeretnék. Szerintem pofonegyszerű kérés, ennek ellenére fél napja ezen rugózok, és semmi sem működik. A kliensem persze meg méltatlankodik, hogy hogy ez nem megy...
-
WonderCSabo
félisten
Megnéztem a projektet, és nekem nem fagy le, megy rendesen. Valszeg ez azért van, mert amikor beraktam az appcompat-ot, fixálta a build patht.
Javítsd meg a projektedet úgy, hogy megnyitod a build path-t, és a lézengő jar-okat (amik nincsenek konténerben) távolítsd el. Aztán szedd ki a libs mappából, majd rakd vissza. Ekkor az Eclipse automatikusan generálja a helyes build path-t.
-
WonderCSabo
félisten
Te nagyon kevered a szezont a fazonnal. Nem sokat programoztál Javában, meg úgy egyáltalán, jól sejtem? Az alapokat valahogy össze kéne szedni. A szál nem azt jelenti, hogy egy külön osztályba szervezed a kódot, hanem teljesen mást.
Most gondoltam el kezdem magyarázni, hogy hogyan készíts egy új szálat Android módon stb, de rájöttem, hogy igazából a szál fogalmát se ismerheted, különben nem jössz elő ezzel a példával. No offense. Itt van egy leírás az Android UI száláról. Itt pedig úgy szálakról általában. Ha ezeket elolvastad, ne tévesszen meg a dolog, Android-on nem Thread-et szoktunk használni, hanem az első linkben bemutatott AsyncTask-ot.
Default constructor cannot handle exception type MalformedURLException thrown by implicit super constructor. Must define an explicit constructor
Ha egy osztályban nem deklarálsz explicite konstruktort, akkor a fordító létrehoz egy úgynevezett default konstruktort, aminek nincs paramétere és nem dob semmilyen kivételt. De csak akkor hozza létre. ha az ősnek létezik és elérhető olyan konstruktora aminek nincs paramétere és nem dob semmilyen kivételt. Tehát valójában "így nézne ki a class":
public class UrlRead {
public UrlRead(){
super();
}
...
}Ezen kívül Te a konstruktoron kívül rögtön inincializálod a két meződet. Ebben az esetben ez a művelet valójában úgymond a default konstruktorban fog végrehajtódni, valahogy így lesz a lefordított osztályban (pszeudokód):
public class UrlRead {
URL logPage;
BufferedReader in;
public UrlRead(){
logPage = new URL("http://bkaroly.hu/log.php");
in = new BufferedReader(new InputStreamReader(logPage.openStream()));
super();
}
...
}Itt viszont meghívod az URL osztály konstruktorát. Ebben deklarálva van, hogy MalformedURLException-t dobhat:
URL osztály részlete:
public URL(String url) throws MalformedURLException{ ... }
Javában viszont minden ellenőrzött kivételt (és a MalformedURLException az), kötelező lekezelni. Ennek két módja van, vagy try-catch blokkba rakod a műveletet, vagy jelzed, hogy tovább dobható a kivétel a throws kulcsszóval. De a default konstruktor nem dobhat tovább kivételt, ahogy már jeleztem, ezért kapod ezt a fordítási hibát.
Mellesleg a kódodnak nem sok értelme lenne ha fordulna is, hiszen megkapod a BufferedReadert de aztán semmit se kezdesz vele.
-
-
WonderCSabo
félisten
Valóban működik így, ezt nem tudtam. A TypeToken működését alapvetően ismerem, elkéri a getGenericSuperClass az anonymous TypeToken classtól, aminek aztán a generikus paramétereit le lehet kérni, ez akkor segít, hogy ha mondjuk Map<String, Integeter> van a TypeTokenben. De azt nem tudtam, hogy a fielden is megmarad a generikus infó.
Szerk.: Simán LogHolder.class-t átadva, TypeToken nélkül is működik... Elnéztem valamit?
public class Main {
public static void main(String[] args) {
Gson gson = new Gson();
String json = "{\"elements\":[{\"sensor\":\"2\"}]}";
LogHolder fromJson = gson.fromJson(json, LogHolder.class);
System.out.println(fromJson);
}
}public class LogHolder {
public LogHolder(List<ArrayElement> elements) {
this.elements = elements;
}
private List<ArrayElement> elements;
public List<ArrayElement> getElements() {
return elements;
}
}public class ArrayElement {
public ArrayElement(String sensorData) {
this.sensorData = sensorData;
}
@SerializedName("sensor")
private String sensorData;
public String getSensorData() {
return sensorData;
}
} -
WonderCSabo
félisten
válasz
WonderCSabo
#2581
üzenetére
2) Esetleg még az lehetne, hogy kidobni az egész LogHolder-t, JSON-al lekérni a JSONArray-t és azt beeadni a GSON-nak hogy deszerializálja List<ArrayElem>-mé. De ez nem túl szimpatikus.
-
WonderCSabo
félisten
1) Jaja, a networking-et mindenképpen nem a UI szálon kell csinálni.
2) A másodikat én csak úgy tudnám megoldani, ha így módosítom a LogHolder osztályt:
public class LogHolder<T extends ArrayElem> {
List<T> ReturnDataSet;
}
gson.fromJson(in, new TypeToken<LogHolder<ArrayElem>>(){}).getType());Van esetleg arra vmi szép megoldás, hogy ne kelljen ezesetben a LogHolder-t módosítani?
-
WonderCSabo
félisten
Szia!
Jó úton haladsz. Az ArrayElem class-t majd nevezd át valami értelmesre, mert elég hülye nevet adtam neki.
List<ArrayElem> ReturnDataSet = new ArrayList <ArrayElem>();
Egyrészt ne legyen package private, hiszen így megsérted az enkapszulációt, továbbá itt felesleges az inicializácót, mivel majd a GSON feltölti ezt a mezőt.
A WebView-al pedig eléggé félrelőttél, teljesen felesleges. Arra csak akkor van szükséged, ha meg akarsz jeleníteni egy weboldalt. Próbáld így:
URL logPage = new URL("http://bkaroly.hu/log.php");
BufferedReader in = new BufferedReader(new InputStreamReader(logPage.openStream()));
Gson gson = new Gson();
LogHolder holder = gson.fromJson(in, LogHolder.class);Itt nem az ArrayElem.class-ot kell átadni, hanem a LogHolder.class-t, remélem világos miért.
Javítottam a kódban egy elírást - Karma
[ Módosította: Karma ]
-
WonderCSabo
félisten
Kb. mindent leírtam, amit meg kell csinálnod... A metódus a GSON API része, amit meg kell hívnod ahhoz, hogy egy JSON stringből Java objektumot készíts. Az első paraméterében a deszerializálandó elemet fogadja, a második paramétere pedig a típus, hogy mivé szeretnéd alakítani a JSON-t. Itt a részletes API doc: http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html
Itt pedig részletes user guide: http://sites.google.com/site/gson/gson-user-guide -
WonderCSabo
félisten
Feltételezem te itt azt szeretnéd, hogy a letöltött JSON stringet Java objektummá alakítsd, és annak az értékeit valahol megjelenítsd, igaz? Ebben az esetben nem értem a WebView hogy jön ide.
Nem tudom mennyi részét akarod átalakítani GSON-al, de ha az egészet, akkor a SerializedName ide nem lesz elég. Hiszen itt van egy JSON obj, aminek egyetlen mezője a ReturnDataSet, amiben egy array van, amely JSON objektumokból áll. Tehát ehhez én csinálnék egy osztályt am egy ilyen array elemet reprezentál, továbbá még egy osztályt (LogHolder ) aminek egyetlen fieldje van ez a ReturnDataSet és List<ArrayElem> típusú. Aztán beadnám a GSON-nak hogy az egészet deszerializálja:
Gson gson = new Gson();
LogHolder holder = gson.fromJson(log_txt_tartalma, ArrayElem.class);A log.txt letöltehted előtte egy string-be, vagy egy Readert adsz be a fromJson első paraméterének ami beolvassa a netről, ahogy tetszik.
-
WonderCSabo
félisten
Questoid SQLite Browser -rel meg tudod nézni a db-t az Eclipse DDMS-el perspectivében, ha kitallóztada db fájlt. Viszont ehhez alapvetően root jog szükséges az eszközön, mivel az appok belső db-jei védett helyen tárolódnak ( /data/data/<csomagnév>/databases/<db_név> ).
-
WonderCSabo
félisten
válasz
Storman999
#2479
üzenetére
Play-en szinte bármit elfogadnak. Kérdés van-e értelme így bármit is csinálni.
-
WonderCSabo
félisten
válasz
levente1227
#2471
üzenetére
Ez a topik Android-os alkalmazások fejlesztéséről szól, kérdésedet tedd fel az eszközöd topikjában.
-
WonderCSabo
félisten
-
WonderCSabo
félisten
-
WonderCSabo
félisten
válasz
Dave-11
#2401
üzenetére
Sajnos ez egy hiba az új (23-as) ADT-ben... És nem ez az egyetlen hiba benne.
Manuálisan gyártsad le az Activityt. A nagy kék gombbal tudod letölteni az Android-os Eclipset. -
WonderCSabo
félisten
válasz
WonderCSabo
#2394
üzenetére
-
WonderCSabo
félisten
Teljesen egyezik a véleményünk a dizájnról. Nekem picit iOS7-es, de alapvetően tetszik. Ami picit visszatetsző, hogy azért elég helypazarló a dizájn. Pl. az új Gmail appban eggyel kevesebb sor fér el, mint a Holosban. Az animációk nagyon jók, de ehhez nagyon frankó API támogatás kell, mert pl. ha a mostani API-val szeretnénk olyan minőségű appokat gyártani mint pl a Play Music, ahhoz rengeteget kell melózni.
Ez a JobSchedule jó dolog lesz, ez már régóta hiányzott. Az ART elvileg sokkal gyorsabb lesz, mint a Dalvik, de erről se kaptunk egyelőre sok információt. A grafikus cuccok biztos érdekesek, de ehhez a részhez annyira nem értek, és nem is érint.
Heads up értesítés szerintem ok, ez már a Facebook Messenger app eddig is csinálta. A floating action button érdekes, de szerintem picit felesleges. A Play Services-ről is beszéltek valamit, de nem sokat.
Alapvetően nekem a legnagyobb bajom, hogy iszonyat köd maradt az első nap után. Ez az Android "L"-ezés meg sztem röhejes.
-
WonderCSabo
félisten
Mielőtt döntenél, nem érdemes megnézni mennyien is használnak Android 2.2-t.
-
WonderCSabo
félisten
a korábbi 2.2-es AVD-vel is ment a Normalizer-es kód (!!!)
Ez eléggé lehetetlennek hangzik. Ha nem érhető el az adott osztály az API levelen, akkor bizony ClassNotFoundException dobódik. Most vagy mégis már API 9 alatt elérhető volt ez az osztály, vagy nem 2.2-es emulátoron futtatad.
-
WonderCSabo
félisten
Elolvastad a hibaüzenetet meg a kódot?
startActivity(new Intent(this,vmi.class)) ;
Ezzel ugyanazt a hibát fogja adni, mint most. Attól, hogy inlineolod az Intent létrehozását, nem változik semmi. Továbbá ahogy Karma már leírta, elve nagyon furcsa, hogy a this egy Class<Activity> példány.
-
WonderCSabo
félisten
válasz
kemkriszt98
#2304
üzenetére
Kommentezd ki a setTextSize() hívást, és próbáld úgy.
coco2: Olvasd el ezt.
-
WonderCSabo
félisten
válasz
h1ght3chzor
#2276
üzenetére
Mondjuk legközelebb akkor a Java topikban tedd fel a kérdést, ha semmi köze az Androidhoz.
-
WonderCSabo
félisten
válasz
h1ght3chzor
#2264
üzenetére
Ez még rosszabb mint a sleep. Ez a busy waiting egy állatorvosi fajtája. -
WonderCSabo
félisten
válasz
h1ght3chzor
#2260
üzenetére
Tehát most azt szeretnéd, hogy minden kiíratást később tegyen meg, vagy azt, hogy csak minden n. elemet írjon ki idő függvényében?
-
WonderCSabo
félisten
válasz
h1ght3chzor
#2257
üzenetére
Kérdésem, hogy ennek mi köze az Androidhoz?
Egyébként pedig javaslom a wait-notify megismerését.De ha már Android, Handler postDelayed metódusával tudsz késleltetni végrehajtást.
-
WonderCSabo
félisten
válasz
trisztan94
#2246
üzenetére
Töröld ki kézzel a fájlt, indítsd újra a VTS-t, stb.
Mondjuk fura, mert nekem a JAD illetve JD-GUI van Java source code generator toolnak VTS alatt.
-
WonderCSabo
félisten
válasz
trisztan94
#2243
üzenetére
Jobb gomb a projekten - > generate java sources. Ha ez lefutott, jobb gomb az adott fájlon - > open java source.
-
WonderCSabo
félisten
Egyrészt valóban a lifecycle callback metódusokra lehet hagyatkozni, de el lehet kérni a running proccesseket is.
-
WonderCSabo
félisten
válasz
letepem
#2210
üzenetére
Az adat nagyrésze kidobható, talán nézd meg a specifikációt. Pl. biztos vagyok benne, hogy az összes járat összes útvonalának részletes GPS adatai nem kellenek egy menetrend apphoz. Tovább egy sqlite db-ban sokkal hatékonyabban lehet tárolni az adatokat a szövegnél, pl. egy nagyobb számhoz nem karakterenként egy byte-ot foglal le, hanem összesen 4-et, stb.
-
WonderCSabo
félisten
válasz
letepem
#2207
üzenetére
És hol akadtál el?...
thon73: Amúgy ha a process eltűnik, akkor az Application is eltűnik, nem?
Természetesen, az Application objektuma egy sima Java objektum ami ott csücsül a process memóriaterületén, ha a proccess leáll, a területe kipucolódik.
És csak a teljesség kedvéért: ha csinálok egy singletont, ami valójában egy példány, csak saját magára való hivatkozást tárol, akkor az hogy létezik, hogy az Activity-vel együtt eltűnik?
A Singleton a proccess végéig megmarad, a garbage collector nem tudja kidobni, hiszen van egy hivatkozási pont (getInstance()) ami egy nem null objektumra mutat, és később elkérhető. Baj lenne, ha nem így lenne.
Egyébként itt jegyezném meg, hogy a Singleton nem egy túl szerencsés minta, alapvetően kerülendő. Persze sok esetben nem lehet megúszni nélküle. -
WonderCSabo
félisten
A statik mezők értéke addig marad meg, amíg a proccess él. A proccesst mostanában az Android ritkán lövi ki, de kevés memória esetén lehetséges, tovább a user is kilőheti.
SharedPrefben egyébként lehet, hogy jobb lenne tárolni ezeket a cuccoat.
Szerk.: A Sianis által linkelt válasz pontosabb amit én írtam.
-
WonderCSabo
félisten
A ProGuard egy bytecode szintű obfuszkáló, optimalizáló és méretcsökkentő eszköz. Az obfuszkáló részének lényege az, hogy az osztályok neveit, metódusak neveit, mezők neveit stb. átnevezi értelmetlen rövid kifejezésekre, mint "a", "a.c.d", stb. Ennek köszönhetően ha visszafordítják is .java fájlokká az appodat, akkor sem lehet egykönnyen kibogozni, mit is csinál pontosan a forrás. De ezt a Google első találat a hivatalos oldal sokkal szebben írja le. A Proguard fizetős verziója a DexGuard, ami picit többet tud.
A ProGuard elsőre nagyszerű dolognak tűnik, de valójában a használatához hozzáértés és rendkívül hosszú konfigolás és tesztelés szükséges, mert az obfuszkáció miatt nagyon nehéz látni, hogy hol csapja szét az appodat. És hidd el nekem - szét fogja csapni.
-
WonderCSabo
félisten
-
WonderCSabo
félisten
válasz
eastsider
#2148
üzenetére
Miért ne példányosítanád ott? Én nem szoktam ezt a show metódust használni:
Pl. onCreate()
mProgressDialog = new ProgressDialog(this);
mProgressDialog.setCancelable(false);
mProgressDialog.setCanceledOnTouchOutside(false);
mProgressDialog.setIndeterminate(false);
mProgressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);eseményre dialógus kell:
mProgressDialog.show();
Új hozzászólás Aktív témák
- Dell Latitude 5430 / 12GEN Core i7 / 16gb RAM / 256gb NvMe ssd / win11 / Világitó Bill
- új HP Pavilion 16" fémházas - AMD Ryzen 5 8540U - 16GB DDR5 - 512GB SSD - gyári gari 2028-ig
- ASUS ROG Raikiri Pro OLED kijelzős prémium kontroller (Garanciás: 2026.12.09. Oázis Computer)
- Újszerű iPhone 13 Pro 128GB Sierra Blue független, 99% aksi, 1 Év garancia
- MacBook Pro asztroszürke M1 Pro 512GB/32GB Magyar bill 2026.12.09-ig Gari!
- ASUS ROG Strix OLED XG32UCWMG /32",4K TrueBlack Glossy, Dual mode,G-Sync/ új, 3év IPon gar
- Beszámítás! Sony PlayStation 5 825GB digital garanciával hibátlan működéssel
- Számlás!Windows 10 Pro 11 Pro,Windows 10 Home 11 Home, Office 2016,2019,2021 ,Vírusirtok,Mac
- LENOVO ThinkBook 13s G2 - i5-1135G7, 16GB RAM, 512GB SSD, jó akku, számla, 6 hó gar
- Telefon felvásárlás!! Xiaomi Redmi Note 10, Xiaomi Redmi Note 10s, Xiaomi Redmi Note 10 Pro
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


Manuálisan gyártsad le az Activityt. A
Ez még rosszabb mint a sleep. Ez a busy waiting egy állatorvosi fajtája.

