-
1300 - 1201
5691 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1901 1900 - 1801 1800 - 1701 1700 - 1601 1600 - 1501 1500 - 1401 1400 - 1301 1300 - 1201 1200 - 1101 1100 - 1001 1000 - 901 900 - 801 800 - 701 700 - 601 600 - 501 500 - 401 400 - 301 300 - 201 200 - 101 100 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
Új hozzászólás Aktív témák
-
Karma
félisten
Üdv!
Itt tenném fel a kérdést, de akár a Java topikba is mehetne.
Arra lennék kíváncsi, hogy az Android hogyan valósítja meg például a LocationListener interfészen keresztül történő metódushívást ( az osztály amely implementálja ugye nem adja át a saját interfész referenciáját, mégis meghívódnak az interfészben deklarált metódusok).
Ezt a fajta interfészen történő értékvisszaadást ismerem:
class A implements C{
B b = new B();
b.setListener(this);
interfacemethod(parameter){
}
}
class B{
C mListener;
method(){
mListener.interfacemethod(parameter);
}
setListener(C cInterface){
mListener= cInterface;
}
}
interface C{
interfacemethod(parameter);
}
Az okozza a félreértést, hogy tettél egy alaptalan feltételezést, ami egyébként elég súlyos is lehet különösen rendszererőforrásokkal kapcsolatban: "az osztály amely implementálja ugye nem adja át a saját interfész referenciáját".
Hogyne tenné? Konkrétan a LocationManagernek kell átadni az interfész referenciát az utolsó paraméterben. Ha megnézed a metódus forrását, az is látszik, ahogy egy HashMapben eltárolja a listenerre mutató hard referenciát. Gyakorlatilag ugyanaz, mint az A-B-C-s példakódod. És ez veszélyes, mert ha nem szünteted meg a regisztrációt, akár Activityk is maradhatnak beragadva a memóriában.
Java alatt "semmi se történik ok nélkül", nincsenek a levegőben röpködő és villámszerűen az objektumaid póznájába becsapódó események (mint lehetne pl. egy JVM szintű publish-subscribe rendszer). Valahol biztosan regisztrálnod kell magad egy konkrét objektumnál.
-
Karma
félisten
Sziasztok, adott a következő kód:
......
float a,b,c
if( a != b){
c = ((a*b)/(a - b));
}else{
mTextView.setText("Nem!")
}na mármost ez a kód abban az esetben ha az a is és b is = ugyan azzal a NEGATÍV (pozitív esetén nem ) számmal akkor az mTextView-ban az a szöveg jelenik meg hogy Infinity(ami nem tőlem származik...), szerintetek ez mért van?
A kód tartalmazott más logikai hibát is így át lett alakítva de azért érdekelne hogy miért történt ez...Float és double típusoknál a nullával való osztás Infinityt ad vissza; ellentétben az egész számokkal ahol kivételt dob.
-
kemkriszt98
tag
Sziasztok, adott a következő kód:
......
float a,b,c
if( a != b){
c = ((a*b)/(a - b));
}else{
mTextView.setText("Nem!")
}na mármost ez a kód abban az esetben ha az a is és b is = ugyan azzal a NEGATÍV (pozitív esetén nem ) számmal akkor az mTextView-ban az a szöveg jelenik meg hogy Infinity(ami nem tőlem származik...), szerintetek ez mért van?
A kód tartalmazott más logikai hibát is így át lett alakítva de azért érdekelne hogy miért történt ez... -
RexpecT
addikt
Üdv!
Itt tenném fel a kérdést, de akár a Java topikba is mehetne.
Arra lennék kíváncsi, hogy az Android hogyan valósítja meg például a LocationListener interfészen keresztül történő metódushívást ( az osztály amely implementálja ugye nem adja át a saját interfész referenciáját, mégis meghívódnak az interfészben deklarált metódusok).
Ezt a fajta interfészen történő értékvisszaadást ismerem:
class A implements C{
B b = new B();
b.setListener(this);
interfacemethod(parameter){
}
}
class B{
C mListener;
method(){
mListener.interfacemethod(parameter);
}
setListener(C cInterface){
mListener= cInterface;
}
}
interface C{
interfacemethod(parameter);
}
-
bucsupeti
senior tag
Regisztrálj Azure fiókot, igényelj ingyenes SendGrid szolgáltatást, és használd a JSON interfészüket az email küldésre. GitHubon van is egy lib hozzá (sendgrid-java). Így teljesen elkerülöd az Androidot és nyomot se hagysz.
Szerk.:
Bocs, nem olvastam végig, hogy nem akarsz külső rendszert bevonni.
Márpedig az email nem így működik, úgyhogy szerintem valamelyik kritériumodból engedni kell.Karma: Bocs, nem olvastam végig, hogy nem akarsz külső rendszert bevonni.
Márpedig az email nem így működik, úgyhogy szerintem valamelyik kritériumodból engedni kell.Igen tudom hogy az email nem így működik...
A kérdésemet átfogalmazom:Megoldható-e úgy a levélküldés a saját programomból, hogy a beállított Exchange fiókon keresztül felhasználói interakció nélkül küldöm a levelet?
-
Karma
félisten
Sziasztok!
Problémám a következő:
Szeretnék egy alkalmazással adatokat gyűjteni és ezeket egy valamilyen fix formátumú plain text email üzenetként elküldeni. Az adatokat egy Exchange postafiók fogadná, amit ott egy VBA makró fog feldolgozni. (ezek a lehetőségek, ezt kell használnom)
A problémám az email küldéssel van. Ahogy tájékozódtam kétféle módszert találtam. Az egyik az intent használata. Ennél az a baj hogy megnyílik az email alkalmazás és ott még egy küldést kell a felhasználónak elvégeznie.
Ha teljesen automatára akarom csinálni akkor a javax.mail használatát találtam meg, de ehhez kell SMTP szerver hozzáférés.
A készülékeken amin futni fog ez az alkalmazás McAfee EMM-el Exchange postafiók van beállítva. Ezt a csatornát hogyan lehetne felhasználni levélküldésre?
Milyen egyéb lehetőségek vannak arra hogy felhasználói interakció nélkül tudjak levelet küldeni úgy, hogy nem veszek igénybe egyéb külső szolgáltatásokat (pl webszerver PHP script segítségével).Nem lehet valahogy a beépített mail alkalmazás objektumait felhasználni?
Regisztrálj Azure fiókot, igényelj ingyenes SendGrid szolgáltatást, és használd a JSON interfészüket az email küldésre. GitHubon van is egy lib hozzá (sendgrid-java). Így teljesen elkerülöd az Androidot és nyomot se hagysz.
Szerk.:
Bocs, nem olvastam végig, hogy nem akarsz külső rendszert bevonni.
Márpedig az email nem így működik, úgyhogy szerintem valamelyik kritériumodból engedni kell. -
bucsupeti
senior tag
Köszi a választ!
Ha más nincs ez marad, de szeretném kerülni a nyilvános rendszereket amennyire lehet. Ha van mód rá szívesebben használnám az EMM illetve az Exchange fiók által biztosított csatornát.
-
rgeorge
addikt
Sziasztok!
Problémám a következő:
Szeretnék egy alkalmazással adatokat gyűjteni és ezeket egy valamilyen fix formátumú plain text email üzenetként elküldeni. Az adatokat egy Exchange postafiók fogadná, amit ott egy VBA makró fog feldolgozni. (ezek a lehetőségek, ezt kell használnom)
A problémám az email küldéssel van. Ahogy tájékozódtam kétféle módszert találtam. Az egyik az intent használata. Ennél az a baj hogy megnyílik az email alkalmazás és ott még egy küldést kell a felhasználónak elvégeznie.
Ha teljesen automatára akarom csinálni akkor a javax.mail használatát találtam meg, de ehhez kell SMTP szerver hozzáférés.
A készülékeken amin futni fog ez az alkalmazás McAfee EMM-el Exchange postafiók van beállítva. Ezt a csatornát hogyan lehetne felhasználni levélküldésre?
Milyen egyéb lehetőségek vannak arra hogy felhasználói interakció nélkül tudjak levelet küldeni úgy, hogy nem veszek igénybe egyéb külső szolgáltatásokat (pl webszerver PHP script segítségével).Nem lehet valahogy a beépített mail alkalmazás objektumait felhasználni?
Az miért baj, hogy kell SMTP hozzáférés? Android => Google => GMail => SMTP. Kell egy Google fiók, ami egyébként sem árt egy Androidos eszközre, az pedig ad SMTP hozzáférést is. De a mobilszolgáltató is biztosít SMTP-t, ha van mobilinternet, ahhoz még autentikáció sem kell.
-
bucsupeti
senior tag
Sziasztok!
Problémám a következő:
Szeretnék egy alkalmazással adatokat gyűjteni és ezeket egy valamilyen fix formátumú plain text email üzenetként elküldeni. Az adatokat egy Exchange postafiók fogadná, amit ott egy VBA makró fog feldolgozni. (ezek a lehetőségek, ezt kell használnom)
A problémám az email küldéssel van. Ahogy tájékozódtam kétféle módszert találtam. Az egyik az intent használata. Ennél az a baj hogy megnyílik az email alkalmazás és ott még egy küldést kell a felhasználónak elvégeznie.
Ha teljesen automatára akarom csinálni akkor a javax.mail használatát találtam meg, de ehhez kell SMTP szerver hozzáférés.
A készülékeken amin futni fog ez az alkalmazás McAfee EMM-el Exchange postafiók van beállítva. Ezt a csatornát hogyan lehetne felhasználni levélküldésre?
Milyen egyéb lehetőségek vannak arra hogy felhasználói interakció nélkül tudjak levelet küldeni úgy, hogy nem veszek igénybe egyéb külső szolgáltatásokat (pl webszerver PHP script segítségével).Nem lehet valahogy a beépített mail alkalmazás objektumait felhasználni?
-
half333
őstag
-
half333
őstag
Tudnátok segíteni? Főzött romot szeretnék feltenni a telefonomra,de mikor rámegyek a choose zip from sd card-ra,ezt irja ki: cant mount sd card. Mit tegyek?
-
Bozek
nagyúr
Na, töröltem a teljes ADT Bundle-t és újra kicsomagoltam. Most már megvan az AndroidManifest.xml.

-
fatal`
titán
Gugli első találat
Szépen így kell int-et kiírni:
tv.setText(String.valueOf(k));
De ha valami szöveget hozzáfűzöl, akkor az átalakítás automatikusan megtörténik:
tv.setText(""+k);
Vagy:
tv.setText("Az eredmény: " + k);Volna még egy javaslatom: az activity-re, mint egységes egészre kell tekinteni. Az egyes UI elemek ennek az egésznek képezik részét, és bármely alrészletnek (metódusnak) szüksége lehet rájuk. Ezért érdemes osztály színtű (akár private) változóként elkészíteni őket, melyek az onCreate-ben kapnak értéket. Ettől a ponttól kezdve viszont minden résznek (a Listener-nek is) rendelkezésére állnak. Meglátod, sokat egyszerűsödik a kód.

Vagy
tv.SetText(Integer.toString(k));
-
kemkriszt98
tag
Ha jól fordítom magyarra a kérdést:
Különböző layout-okon azonos névvel jelölt UI elemek nem zavarják-e a programot?Ez egy nagyon jó kérdés. A gyakorlat azt mutatja, hogy nem zavarja; nekem is van két "filter"-em két különböző layout-ban. Mivel a keresés mindig egy layout-on belül történik, ezért (természetesen) mindig a megfelelőt találja meg.
Ugyanakkor, ha az R.java-t (gen-ben) megnézed, akkor csak egyetlen filter szerepel benne, vagyis esetemben a két filter ugyanazt az azonosítót kapja.
((Én ezt fel is használtam a Fragmentek kezelésében: Ha portrait és landscape módban ugyanazon nevű frame-ek szerepelnek, akkor a kész fragment visszatölthető (pontosabban visszatöltődik). Különböző nevű frame-ekbe ugyanaz a fragment példány nem tölthető be.))
Ok, és bocs a béna fogalmazásért....

-
thon73
tag
Nem zavar be hogy ha az összekattintgató -s módszerrel rakok össze egy akkor és semmihez nem nyúlok az xml-ben akkor minden layer 1. textView-ének az id neve az lesz hogy textView 1?
Ha jól fordítom magyarra a kérdést:
Különböző layout-okon azonos névvel jelölt UI elemek nem zavarják-e a programot?Ez egy nagyon jó kérdés. A gyakorlat azt mutatja, hogy nem zavarja; nekem is van két "filter"-em két különböző layout-ban. Mivel a keresés mindig egy layout-on belül történik, ezért (természetesen) mindig a megfelelőt találja meg.
Ugyanakkor, ha az R.java-t (gen-ben) megnézed, akkor csak egyetlen filter szerepel benne, vagyis esetemben a két filter ugyanazt az azonosítót kapja.
((Én ezt fel is használtam a Fragmentek kezelésében: Ha portrait és landscape módban ugyanazon nevű frame-ek szerepelnek, akkor a kész fragment visszatölthető (pontosabban visszatöltődik). Különböző nevű frame-ekbe ugyanaz a fragment példány nem tölthető be.))
-
Bozek
nagyúr
Csak hogy megtaláljam, miután átnéztem a könyvet és az ITFactory-s oktatást.

Közbe egy kérdés is lenne. Leszedtem az ADT-t, amikor csinálok egy projekt-et, akkor nem hozza létre automatikusan az AndroidManifest.xml-t? Vagy csak nálam van valami elállítva?
-
kemkriszt98
tag
Ne foglaljuk el a Programozás fórumot, gondoltam nyitok egy specifikusan Android fejlesztéses topicot.
Kis források, indulásnak: Google Android fejlesztői portál
Gyakorlatilag minden megtalálható itt, amire szükség lehet:
- Segítség induláshoz (Gy.I.K.)
- Fejlesztői környezet letöltése, konfigurálása
- Példák
- Teljes referenciaNem zavar be hogy ha az összekattintgató -s módszerrel rakok össze egy akkor és semmihez nem nyúlok az xml-ben akkor minden layer 1. textView-ének az id neve az lesz hogy textView 1?
-
kemkriszt98
tag
Gugli első találat
Szépen így kell int-et kiírni:
tv.setText(String.valueOf(k));
De ha valami szöveget hozzáfűzöl, akkor az átalakítás automatikusan megtörténik:
tv.setText(""+k);
Vagy:
tv.setText("Az eredmény: " + k);Volna még egy javaslatom: az activity-re, mint egységes egészre kell tekinteni. Az egyes UI elemek ennek az egésznek képezik részét, és bármely alrészletnek (metódusnak) szüksége lehet rájuk. Ezért érdemes osztály színtű (akár private) változóként elkészíteni őket, melyek az onCreate-ben kapnak értéket. Ettől a ponttól kezdve viszont minden résznek (a Listener-nek is) rendelkezésére állnak. Meglátod, sokat egyszerűsödik a kód.

Ok, értem, és kösz a tippet...

-
thon73
tag
Ok, megvan viszont akkor valaki elmagyarázná? ha a setText nem tud intet kiírni akkor a fordító mért nem ad hibát?
Gugli első találat
Szépen így kell int-et kiírni:
tv.setText(String.valueOf(k));
De ha valami szöveget hozzáfűzöl, akkor az átalakítás automatikusan megtörténik:
tv.setText(""+k);
Vagy:
tv.setText("Az eredmény: " + k);Volna még egy javaslatom: az activity-re, mint egységes egészre kell tekinteni. Az egyes UI elemek ennek az egésznek képezik részét, és bármely alrészletnek (metódusnak) szüksége lehet rájuk. Ezért érdemes osztály színtű (akár private) változóként elkészíteni őket, melyek az onCreate-ben kapnak értéket. Ettől a ponttól kezdve viszont minden résznek (a Listener-nek is) rendelkezésére állnak. Meglátod, sokat egyszerűsödik a kód.

-
Yany
addikt
Ok, megvan viszont akkor valaki elmagyarázná? ha a setText nem tud intet kiírni akkor a fordító mért nem ad hibát?
Szerintem int esetén egy resource azonosítónak véli az értékét. Pl. R.id.valami.
-
kemkriszt98
tag
Ok, megvan viszont akkor valaki elmagyarázná? ha a setText nem tud intet kiírni akkor a fordító mért nem ad hibát?
-
kemkriszt98
tag
Sziasztok, ha valaki megtudná mondani, hogy miért áll le az activity(kivételt nem dob) ha megnyomom a gombot( kommentben 1. gomb néven fut) az nagyon szuper lenne

Már tanultam az előzőből

KódValami az int-ek körül van...
-
kemkriszt98
tag
Sziasztok, ha valaki megtudná mondani, hogy miért áll le az activity(kivételt nem dob) ha megnyomom a gombot( kommentben 1. gomb néven fut) az nagyon szuper lenne

Már tanultam az előzőből

Kód -
Karma
félisten
Egy fix szélességű layout-ra nekem is sikerül, de van olyan eset ahol dinamikusan változhat a szélesség.
Esetleg ha van egy létező példád megtudnád osztani, vagy körbeírni hogy miket kell csinálni ha esetleg változna dinamikusan a szélesség?
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.
-
Dave-11
tag
Van néhány gondom. Egy egyszerű appot írok, van egy gombom, és ha arra rányomok csinál egy MediaPlayer objektumot, és véletlenszerűen választja ki hozzá a hang fájlt. Annyi kéne, hogy ha megnyomom a gombot, akkor lejátssza a hangot, és ha megnyomom gyorsan még egyszer, akkor állítsa le az előzőt és randomoljon egy új hangot és azt indítsa el. Illetve ha megy a hang és kilépek közben akkor állítsa le.
Tudtok ehhez valami jó tippet adni? -
SektorFlop
aktív tag
Egy fix szélességű layout-ra nekem is sikerül, de van olyan eset ahol dinamikusan változhat a szélesség.
Esetleg ha van egy létező példád megtudnád osztani, vagy körbeírni hogy miket kell csinálni ha esetleg változna dinamikusan a szélesség?
-
Karma
félisten
Valaki csinált már valami olyasmit, hogy 2 button vízszintesen kitölt egy linear vagy relative layout-ot, pl 50-50 százalékban?
Igen. Mind a kettővel meg lehet csinálni.
Mi a kérdés? -
SektorFlop
aktív tag
Valaki csinált már valami olyasmit, hogy 2 button vízszintesen kitölt egy linear vagy relative layout-ot, pl 50-50 százalékban?
-
fatal`
titán
Amúgy ezt meg tudnád magyarázni , hogy miért van így? Hisz attól még az R.java létezik és az id ott van...
Az ott van, csak maga a textbox nem létezik, mert a setContentView tölti be.
-
kemkriszt98
tag
Ok, értem.
köszönöm -
SektorFlop
aktív tag
Amúgy ezt meg tudnád magyarázni , hogy miért van így? Hisz attól még az R.java létezik és az id ott van...
Magyarázásba nem vagyok jó, buta "programozó" vagyok nem tudok róla beszélni csak kódolni tudok vagy néha még azt se.
De azért megpróbálom érthetően leírni, max a többiek kijavítanak majd. 
Szóval, elsőnek az activity-ben létre kell hozni egy view-t (fel kell "fújni" a layout-ot), és csak ezután léteznek az elemek.
-
rgeorge
addikt
Amúgy ezt meg tudnád magyarázni , hogy miért van így? Hisz attól még az R.java létezik és az id ott van...
Csak pl. a view-k létre sem jönnek a setContentView hívás előtt, mert éppen abban jönnek létre.
-
kemkriszt98
tag
Azért egy "tankönyvben" egy ilyesmit igazán megemlíthetnének
kösz.Amúgy ezt meg tudnád magyarázni , hogy miért van így? Hisz attól még az R.java létezik és az id ott van...
-
kemkriszt98
tag
setContentView-t tedd UI elemek definiálása elé.
Azért egy "tankönyvben" egy ilyesmit igazán megemlíthetnének
kösz. -
SektorFlop
aktív tag
Kicsit át lett írva de ugyan az a hibaüzenet :
setContentView-t tedd UI elemek definiálása elé.
-
kemkriszt98
tag
Kicsit át lett írva de ugyan az a hibaüzenet :
-
SektorFlop
aktív tag
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.
Igen úgy odapakolja, sorry az elkerülte a figyelmem.
-
kemkriszt98
tag
RuntimeException: Unable to start activity ComponentInfo{....}: Java.lang.NullPointerException
Lehet butaság de én a fenti exceptionból arra következtetnék hogy az onCreate-ból lemaradt a setContentView() metódus. Bár nem kizárt hogy több oka is lehet az alábbi üzenetnek.
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.
-
SektorFlop
aktív tag
Ja ok

RuntimeException: Unable to start activity ComponentInfo{....}: Java.lang.NullPointerException
(A "..." a csomagnév , osztálynév stb.)RuntimeException: Unable to start activity ComponentInfo{....}: Java.lang.NullPointerException
Lehet butaság de én a fenti exceptionból arra következtetnék hogy az onCreate-ból lemaradt a setContentView() metódus. Bár nem kizárt hogy több oka is lehet az alábbi üzenetnek.
-
SektorFlop
aktív tag
Ezt miért dobálja a logcat invalid int: ""?
Egy EditText értékét parsolom integer típussá. De ha jól gondolom már a view létrejötte után dobja, nem a parsolásnál. -
Karma
félisten
Ezzel viszont az a baj, hogy még próbáltam berakni egy gombot és akkor csak átirtam a t1 et b1 re a setOn...... metódus előtt de úgy is nullPointerExceptiont kapok
Mi lenne, ha a layout XML-t és ezt a Java forrásfájlt megosztanád velünk pl. PasteBinen, és akkor nem kéne vakon találgatni?
-
kemkriszt98
tag
-
fatal`
titán
Nem az id-kel van baj mert már megnéztem. És az exception mellet a 18 as sort írja ami az ahol a t1 hez hozzá adom az onClickListener-t
Akkor a t1 null, valamiért nem találja a findviewbyid a textboxot az xmlben.
-
kemkriszt98
tag
Nem az id-kel van baj mert már megnéztem. És az exception mellet a 18 as sort írja ami az ahol a t1 hez hozzá adom az onClickListener-t
-
Karma
félisten
Ja ok

RuntimeException: Unable to start activity ComponentInfo{....}: Java.lang.NullPointerException
(A "..." a csomagnév , osztálynév stb.)A nullpointerexception alatti stacktrace minden soránál van egy fájlnév és egy sorszám. Ha kettőt kattintasz rá, még oda is visz az Eclipse. Nézd meg, melyik a felülről legelső sor, ami a te kódod, és javítsd ki.
Pl. egy gyanús lehetőség: a layout XML-ben nem, vagy rosszul állítottad be a TextView-k ID-jét, ami miatt a findViewById null értéket ad vissza.
-
kemkriszt98
tag
-
kemkriszt98
tag
-
Sianis
addikt
Ja ok

RuntimeException: Unable to start activity ComponentInfo{....}: Java.lang.NullPointerException
(A "..." a csomagnév , osztálynév stb.)Activity2 benne van a menifest fájlban?
Sianis
-
kemkriszt98
tag
-
fatal`
titán
Sziasztok, adott a következő kódrészlet :
TextView t1 = (TextView) findViewById(R.id.t1);
t1.setOnClickListener(new OnClickListener() {@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,Activity2.class);
startActivity(intent);
}
});
TextView t2 = (TextView) findViewById(R.id.t2);
t2.setOnClickListener(new OnClickListener() {@Override
public void onClick(View v) {
finish();
}
});Na mármost ez e MainActivity onCreate metódusában van valami baj van vele.
Ha ki kommentelem akkor gond nélkül lefut az alkalmazásom de ha ez bent van akkor még el se indul máris kiírja, hogy unfortunatly the application has stopped
Ötlet?Esetleg, ha beírod, hogy az adb milyen exceptiont dob, amikor leáll, akkor lehet, hogy könnyebben tudunk segíteni.

-
kemkriszt98
tag
Sziasztok, adott a következő kódrészlet :
TextView t1 = (TextView) findViewById(R.id.t1);
t1.setOnClickListener(new OnClickListener() {@Override
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this,Activity2.class);
startActivity(intent);
}
});
TextView t2 = (TextView) findViewById(R.id.t2);
t2.setOnClickListener(new OnClickListener() {@Override
public void onClick(View v) {
finish();
}
});Na mármost ez e MainActivity onCreate metódusában van valami baj van vele.
Ha ki kommentelem akkor gond nélkül lefut az alkalmazásom de ha ez bent van akkor még el se indul máris kiírja, hogy unfortunatly the application has stopped
Ötlet? -
thon73
tag
Teljesen más téma, végre egyszer ne csak kérdést tegyek fel. Sokat kínlódtam azzal, hogy automatikusan eltüntessem a soft-keyboard-ot listView használatakor. A neten úgy láttam, hogy ezzel másnak is baja van.
Én a következő érdekességet találtam:A listView megérintésére így tudtam eltüntetni a billentyűzetet:
list.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
if (event.getAction() == MotionEvent.ACTION_DOWN)
{
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow( list.getWindowToken(), 0);
}
return false;
}
} );Érdekes, hogy nem kell a focus-t átadni, ill. az is mindegy, hogy melyik View szolgáltatja a Token-t. A billentyűzet eltűnik, és ezt semmi más módon nem tudtam elérni itt.
A készülék elfordításakor azonban a bill. mindenképpen előugrik, és a fenti módszer hatástalan volt. Ezzel szemben a focus elkérése működött (holott a fenti esetben nem!):
@Override
public void onResumeFragments()
{
....
// list.setFocusable( true ); //az utóbbi ezt is beállítja
// list.setFocusableInTouchMode( true );
// list.requestFocusFromTouch();
list.requestFocus();
}Az első három sor nem véletelenül kikommentelt, azok nélkül is működött.
Most csak akkor lesz billentyűzetem, ha a keresőmezőbe írok.

Ha valakinek lenne ennél egyszerűbb/jobb ötlete, szívesen veszem. Ha valakinek segít a fenti snipplet, annak is örülök!És ez tökéletesen működik - Android 2.3.6-on a telefonon.
De a 4.x tablet oda se füttyent rá...
Azt szeretem az androidban, hogy olyan konzekvens... -
thon73
tag
Teljesen más téma, végre egyszer ne csak kérdést tegyek fel. Sokat kínlódtam azzal, hogy automatikusan eltüntessem a soft-keyboard-ot listView használatakor. A neten úgy láttam, hogy ezzel másnak is baja van.
Én a következő érdekességet találtam:A listView megérintésére így tudtam eltüntetni a billentyűzetet:
list.setOnTouchListener(new OnTouchListener()
{
@Override
public boolean onTouch(View v, MotionEvent event)
{
if (event.getAction() == MotionEvent.ACTION_DOWN)
{
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow( list.getWindowToken(), 0);
}
return false;
}
} );Érdekes, hogy nem kell a focus-t átadni, ill. az is mindegy, hogy melyik View szolgáltatja a Token-t. A billentyűzet eltűnik, és ezt semmi más módon nem tudtam elérni itt.
A készülék elfordításakor azonban a bill. mindenképpen előugrik, és a fenti módszer hatástalan volt. Ezzel szemben a focus elkérése működött (holott a fenti esetben nem!):
@Override
public void onResumeFragments()
{
....
// list.setFocusable( true ); //az utóbbi ezt is beállítja
// list.setFocusableInTouchMode( true );
// list.requestFocusFromTouch();
list.requestFocus();
}Az első három sor nem véletelenül kikommentelt, azok nélkül is működött.
Most csak akkor lesz billentyűzetem, ha a keresőmezőbe írok.

Ha valakinek lenne ennél egyszerűbb/jobb ötlete, szívesen veszem. Ha valakinek segít a fenti snipplet, annak is örülök! -
thon73
tag
De igen, megtartod az Activity-t. De miért akarod letárolni? Direkt erre van a getActivity() metódus a Fragment-ben.
Nem akarom megtartani. Pont ezért kérdezem. De ez a példa szerepel magában a dokumentációban.
((Szerintem egyébként azért "tartja meg", mert a getActivity() mindig Activity-t ad vissza. Így egyszerűbb, mint minden alkalommal átalakítani az Activity-t Listener-é. Ezt csak gondolom.)) -
sztanozs
veterán
felkerult az elso appom a Google Playbe

Maga a jatek nem egy orult nagy cucc, egy regi, erintokepernyos handheldre keszult jatek portja, amolyan 'technikai teszt' jelleggel, SDL2-vel keszult, efelett van egy egyszeru, nagyreszt az app inditasaert es a reklamok kezeleseert felelos Java reteg.
Abszolut minimalista grafika, egyszeru, gyors jatekmenet, csak semmi bonyolult
Most, hogy ez is megvan, johetnek a komolyabb jatekok is![;]](//cdn.rios.hu/dl/s/v1.gif)
Wow, nem rossz - bár a szemem majd kifolyott a Play-es képeken

-
WonderCSabo
félisten
Egy egyszerűbb kérdésben kérem a véleményeteket:
A doksiban a Fragments/Creating event callbacks to the activity rész szerint:
public static class FragmentA extends ListFragment {
OnArticleSelectedListener mListener;
...
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mListener = (OnArticleSelectedListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement OnArticleSelectedListener");
}
}
...
}Az a kérdésem, hogy ezzel a lépéssel nem tartjuk-e meg az mListener-be átadott Activity-t a világ (pontosabban a fragment) végezetéig, tehát nem kellene-e az onDetach() metódusban elengedni?
Ha pedig nem, akkor ugye felhasználhatom az mListener (ami az activity)-t bármikor és null-ellenőrzés nélkül a Fragmentben?
De igen, megtartod az Activity-t. De miért akarod letárolni? Direkt erre van a getActivity() metódus a Fragment-ben.
-
thon73
tag
Egy egyszerűbb kérdésben kérem a véleményeteket:
A doksiban a Fragments/Creating event callbacks to the activity rész szerint:
public static class FragmentA extends ListFragment {
OnArticleSelectedListener mListener;
...
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
try {
mListener = (OnArticleSelectedListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString() + " must implement OnArticleSelectedListener");
}
}
...
}Az a kérdésem, hogy ezzel a lépéssel nem tartjuk-e meg az mListener-be átadott Activity-t a világ (pontosabban a fragment) végezetéig, tehát nem kellene-e az onDetach() metódusban elengedni?
Ha pedig nem, akkor ugye felhasználhatom az mListener (ami az activity)-t bármikor és null-ellenőrzés nélkül a Fragmentben?
-
lordjancso
senior tag
Hm. Megpróbálhatnád azt, hogy felüldefiniálod a setBounds metódust az UrlDrawable-ben úgy, hogy a tagváltozóba rakott képre is meghívja azt, ugyanazokkal a paraméterekkel.
Mondjuk célszerű azt az esetet is kezelni, ha még null a kép, és majd a jövőben jön létre. Az előző bekezdésben leírt módosításon túl az onPostExecute-ban fel kell cserélned az urlDrawable.drawable = result sort a setBoundsszal, így az új méret mindkét objektumra hat.
Az a baj, hogy nem egészen látom ennek a rajzolásnak a működését, tehát eléggé sötétben tapogatózom és már kezdem elveszteni a fonalat, hogy mier is gondolsz pontosan.

Az UrlDrawable osztályban felüldefiniáltam a setBounds metódust, de nem tudom, hogy az osztály drawable változójával mit kezdjek a setBounds-on belül.
Annyit sejtek erről a setBounds-ról, hogy a 4 int paraméteréről, hogy az első kettő a kép bal felső sarkának x és y koordinátáit adja meg, a második kettő pedig a jobb alsó pont x és y koordinátáit.Alapvetően az UrlImageParser osztályban az onPostExecute-ban történik átméretezés, mert a result.getIntrinsicWidth() és a result.getIntrinsicHeight() kisebb számoakt adnak vissza, mint a kép eredeti mérete, csak nem eléggé kicsinyíti le.
Azt nem tudom, hogy mi alapján kicsinyít? Egy 1024x768-as képből 680-valamennyi széles képet csinált (magasság aránytartóan ehhez megfelelőnek 500 valamennyi), viszont a kijelzőm 600x800-as méretű, így a képből egy kis rész kilóg. -
Karma
félisten
Megpróbáltam a setBounds-ban úgy beállítani, ahogy szeretném, de nem jártam sikerrel.
Egy jóval nagyobb képet használtam, mint a kijelzőm mérete.
A setBounds-ot így állítottam be: urlDrawable.setBounds(0, 0, 100, 100);
Ebben az esetben a képnek 100x100-asnak kellene lennie. A Drawable object mérete valóban 100x100 méretű, viszont a képet átméretezés nélkül rakja bele, így a kép kilóg a konténerből.
Remélem érthetően fogalmaztam.
Hogyan tudnám ténylegesen a képet méretezni?Hm. Megpróbálhatnád azt, hogy felüldefiniálod a setBounds metódust az UrlDrawable-ben úgy, hogy a tagváltozóba rakott képre is meghívja azt, ugyanazokkal a paraméterekkel.
Mondjuk célszerű azt az esetet is kezelni, ha még null a kép, és majd a jövőben jön létre. Az előző bekezdésben leírt módosításon túl az onPostExecute-ban fel kell cserélned az urlDrawable.drawable = result sort a setBoundsszal, így az új méret mindkét objektumra hat.
-
lordjancso
senior tag
Megpróbáltam a setBounds-ban úgy beállítani, ahogy szeretném, de nem jártam sikerrel.
Egy jóval nagyobb képet használtam, mint a kijelzőm mérete.
A setBounds-ot így állítottam be: urlDrawable.setBounds(0, 0, 100, 100);
Ebben az esetben a képnek 100x100-asnak kellene lennie. A Drawable object mérete valóban 100x100 méretű, viszont a képet átméretezés nélkül rakja bele, így a kép kilóg a konténerből.
Remélem érthetően fogalmaztam.
Hogyan tudnám ténylegesen a képet méretezni? -
Karma
félisten
És még egy kérdésem lenne, mert erre sem találok semmi értelmes megoldást...
Hogyan tudnám az így megjelenő képek szélességét százalékos formában megadni? Az a baj, hogy így a kép különböző méretű kijelzőkön különböző méretben jelenik meg.
ImageView-nál meg lehet adni százalékos méretezést, de ugye most egy TextView-ban vagyunk.Az onPostExecute-ban van egy setBounds hívás, azt kell módosítanod úgy, hogy azt csinálja amit szeretnél.
-
lordjancso
senior tag
Bevallom sose használtam az ImageGetter megoldást, ha HTML-t kellett megjeleníteni, mindig a WebView-t preferáltam. Kicsit keresgélve úgy tűnik, hogy az invalidate hívás tényleg nem rendezi újra a tartalmat.
Workaroundot láttam: a WeakReference<View> helyett WeakReference<TextView>, és az invalidate helyett kell egy c.setText(c.getText()) hívás.
És még egy kérdésem lenne, mert erre sem találok semmi értelmes megoldást...
Hogyan tudnám az így megjelenő képek szélességét százalékos formában megadni? Az a baj, hogy így a kép különböző méretű kijelzőkön különböző méretben jelenik meg.
ImageView-nál meg lehet adni százalékos méretezést, de ugye most egy TextView-ban vagyunk. -
lordjancso
senior tag
Bevallom sose használtam az ImageGetter megoldást, ha HTML-t kellett megjeleníteni, mindig a WebView-t preferáltam. Kicsit keresgélve úgy tűnik, hogy az invalidate hívás tényleg nem rendezi újra a tartalmat.
Workaroundot láttam: a WeakReference<View> helyett WeakReference<TextView>, és az invalidate helyett kell egy c.setText(c.getText()) hívás.
Lehet, hogy ki fogom próbálni a WebView-s megoldást, de az invalidate helyett a c.setText(c.getText()) működik, úgyhogy egyelőre jónak látszik a dolog!
Köszönöm szépen! -
Karma
félisten
SIkerült megoldani ezzel a megoldással, a kép már letöltődik, viszont rácsúszik a szövegre.
Úgy viselkedik, mintha nem tudná értelmezni a szélesség-magasság paramétereit a képnek.
Pedig a bekeztések külön paragrafusban vannak (<p></p> tag a html-ben) és a kép és igy külön bekezdés..
Erre nincs véletlenül valami ötleted?Egyébként ez lenne a legjobb módszer html tartalom megjelenítésére az alkalmazásban, vagy használjak WebView-t? Úgy tudom 2.x androidon nem lehet átlátszóra állítani a WebView-t és az problémás lehet a számomra. Plusz úgy gondolom, a betűméret, betűtípus sem lenne tökéletesen megegyező a WebView-ban és az alkalmazás többi részén.

Bevallom sose használtam az ImageGetter megoldást, ha HTML-t kellett megjeleníteni, mindig a WebView-t preferáltam. Kicsit keresgélve úgy tűnik, hogy az invalidate hívás tényleg nem rendezi újra a tartalmat.
Workaroundot láttam: a WeakReference<View> helyett WeakReference<TextView>, és az invalidate helyett kell egy c.setText(c.getText()) hívás.
-
lordjancso
senior tag
Semmi nagy dologra nem gondoltam, két dolgot változtatnék a példán a rend kedvéért:
1) Ahogy nézem, nem használja fel az URLImageGetter a konstruktorban átadott Contextet, úgyhogy a tagváltozót és a paramétert törölném azonnal. Ha meg mégis kéne, akkor a View-tól kérném el.
2) A container tagváltozója ugyanennek az osztálynak erősen kapaszkodik (hard reference) a View-ba, úgyhogy ha mondjuk a letöltés tíz percig tart, a felhasználó már régen továbbállt mert megunta, akkor se tudja a GC felszabadítani az egész Activityt.
Könnyen elkerülhető, ha a container tagváltozó nem View, hanem WeakReference<View> típusú. Két sort kell módosítani hozzá, és máris nem akadályozza a GC-t – csak le kell ellenőrizni onPostExecute-ban, hogy megvan-e még a View, vagy már vége.public class URLImageParser implements ImageGetter {
WeakReference<View> container;
public URLImageParser(View t) {
this.container = new WeakReference<View>(t);
}
public class ImageGetterAsyncTask extends AsyncTask<String, Void, Drawable> {
URLDrawable urlDrawable;
...
@Override
protected void onPostExecute(Drawable result) {
View c = URLImageParser.this.container.get();
if (c == null) return;
...
// redraw the image by invalidating the container
c.invalidate();
}
...
}
}SIkerült megoldani ezzel a megoldással, a kép már letöltődik, viszont rácsúszik a szövegre.
Úgy viselkedik, mintha nem tudná értelmezni a szélesség-magasság paramétereit a képnek.
Pedig a bekeztések külön paragrafusban vannak (<p></p> tag a html-ben) és a kép és igy külön bekezdés..
Erre nincs véletlenül valami ötleted?Egyébként ez lenne a legjobb módszer html tartalom megjelenítésére az alkalmazásban, vagy használjak WebView-t? Úgy tudom 2.x androidon nem lehet átlátszóra állítani a WebView-t és az problémás lehet a számomra. Plusz úgy gondolom, a betűméret, betűtípus sem lenne tökéletesen megegyező a WebView-ban és az alkalmazás többi részén.

-
kemkriszt98
tag
-
Karma
félisten
Hmm.. Ez jónak tűnik, köszönöm szépen!
"Bár én biztosan WeakReference-et raknék el a View-hoz."
Ezt hogy érted? Kezdő Android fejlesztő vagyok, úgyhogy kifejtenéd ezt nekem bővebben?
Köszi!Semmi nagy dologra nem gondoltam, két dolgot változtatnék a példán a rend kedvéért:
1) Ahogy nézem, nem használja fel az URLImageGetter a konstruktorban átadott Contextet, úgyhogy a tagváltozót és a paramétert törölném azonnal. Ha meg mégis kéne, akkor a View-tól kérném el.
2) A container tagváltozója ugyanennek az osztálynak erősen kapaszkodik (hard reference) a View-ba, úgyhogy ha mondjuk a letöltés tíz percig tart, a felhasználó már régen továbbállt mert megunta, akkor se tudja a GC felszabadítani az egész Activityt.
Könnyen elkerülhető, ha a container tagváltozó nem View, hanem WeakReference<View> típusú. Két sort kell módosítani hozzá, és máris nem akadályozza a GC-t – csak le kell ellenőrizni onPostExecute-ban, hogy megvan-e még a View, vagy már vége.public class URLImageParser implements ImageGetter {
WeakReference<View> container;
public URLImageParser(View t) {
this.container = new WeakReference<View>(t);
}
public class ImageGetterAsyncTask extends AsyncTask<String, Void, Drawable> {
URLDrawable urlDrawable;
...
@Override
protected void onPostExecute(Drawable result) {
View c = URLImageParser.this.container.get();
if (c == null) return;
...
// redraw the image by invalidating the container
c.invalidate();
}
...
}
}[ Módosította: doc ] -
fatal`
titán
értem, és a fizetős app-okkal is ilyen egyszerű?
Legalább 5-10 hozzászólást olvasnál vissza...
Nem lehet fizetős appot publikálni Magyarországról.
-
kemkriszt98
tag
-
fatal`
titán
Pont erre keresnék megoldást, hogy mondjuk létezik olyan cég, aki megfelelő paraméterekkel rendelkezik és az ilyen "jött-ment" országokban létrejött fejlesztők munkáját n%-ért cserébe publikálja? Vagy bármi más konstrukció?
Illetve biztos vagy benne, hogy hirdetésből származó bevételt lehet termelni ilyen országokban? Szerintem az sem megy, nem csak a pénzes és in-app szoftverek, de lehet, hogy rosszul tudom.
AdSense van Magyarországon, az működik. In-app purchase és play store payware app publikálás nincs.
-
Yany
addikt
Pont erre keresnék megoldást, hogy mondjuk létezik olyan cég, aki megfelelő paraméterekkel rendelkezik és az ilyen "jött-ment" országokban létrejött fejlesztők munkáját n%-ért cserébe publikálja? Vagy bármi más konstrukció?
Illetve biztos vagy benne, hogy hirdetésből származó bevételt lehet termelni ilyen országokban? Szerintem az sem megy, nem csak a pénzes és in-app szoftverek, de lehet, hogy rosszul tudom.
-
doc
nagyúr
Jelenleg milyen alternatívák vannak, ha pénzt szeretnél keresni egy appal? Hirdetéses-ingyenes, in-app purchase és akár pénzért árult szoftver esetén is érdekelne, hogy csak az egyetlen mód egy külföldi székhelyű és bankszla-jú vállalkozás indítása, vagy van más mód is? Köszi a segítséget.

legjobb tudomasom szerint Magyarorszagrol sem fizetos (tehat a Playbol penzert megveheto) sem in-app purchase-zel ellatott appot nem arulhatsz, tehat marad a reklam

-
Yany
addikt
Jelenleg milyen alternatívák vannak, ha pénzt szeretnél keresni egy appal? Hirdetéses-ingyenes, in-app purchase és akár pénzért árult szoftver esetén is érdekelne, hogy csak az egyetlen mód egy külföldi székhelyű és bankszla-jú vállalkozás indítása, vagy van más mód is? Köszi a segítséget.

-
doc
nagyúr
Sziasztok, az lenne a kérdésem hogy egy ingyenesnek szánt alkalmazást minden gond nélkül fel lehet tölteni vagy vannak különféle jogi nyavalyák amik kötelezőek?
Beregisztralsz, kifizeted a 25 dollaros dijat, es onnantol tolthetsz fel ingyenes appot.
-
kemkriszt98
tag
Sziasztok, az lenne a kérdésem hogy egy ingyenesnek szánt alkalmazást minden gond nélkül fel lehet tölteni vagy vannak különféle jogi nyavalyák amik kötelezőek?
-
lordjancso
senior tag
Javaslom ezt a StackOverflow kérdést és az elfogadott válaszát megtekintésre. Mivel a TextView adott, csak az ImageGetter interfészt tudnád használni, arra meg ez egy járható megoldásnak tűnik.
Bár én biztosan WeakReference-et raknék el a View-hoz.
Hmm.. Ez jónak tűnik, köszönöm szépen!
"Bár én biztosan WeakReference-et raknék el a View-hoz."
Ezt hogy érted? Kezdő Android fejlesztő vagyok, úgyhogy kifejtenéd ezt nekem bővebben?
Köszi! -
Karma
félisten
Üdv!
Hogyan tudnám megoldani, hogy adatbázisból jövő html szöveget egy TextView-ban megjelenítek úgy, hogy a képek is megjelenjenek? A sima html szöveg nagyon jól megjelenik a Html.fromHtml metóduson keresztül, de a képek helyén csak egy kékes kis négyzetet látok.
A képeim természetesen abszolút hivatkozások, tehát:
<img src="http://domain.hu/my_image.jpg" />Javaslom ezt a StackOverflow kérdést és az elfogadott válaszát megtekintésre. Mivel a TextView adott, csak az ImageGetter interfészt tudnád használni, arra meg ez egy járható megoldásnak tűnik.
Bár én biztosan WeakReference-et raknék el a View-hoz.
-
lordjancso
senior tag
Üdv!
Hogyan tudnám megoldani, hogy adatbázisból jövő html szöveget egy TextView-ban megjelenítek úgy, hogy a képek is megjelenjenek? A sima html szöveg nagyon jól megjelenik a Html.fromHtml metóduson keresztül, de a képek helyén csak egy kékes kis négyzetet látok.
A képeim természetesen abszolút hivatkozások, tehát:
<img src="http://domain.hu/my_image.jpg" /> -
Sianis
addikt
Működik az félig magától is, csak használd a setEmptyView metódust.
Sianis
-
thon73
tag
Ha megengeded, hogy belepofátlankodjak, én így csinálnám: [link]
Ha pedig empy részt akarsz csapni hozzá, akkor a ListView alá tennék egy layout-ot, id-ja @android:id/empty lenne és teljesen olyan paraméterekkel menni, mint a ListView, csak a visibility lenne gone.
Így vagy egyik vagy másik layout látszana és kényszerítené ki a lent elemtől, hogy lent is maradjon.
Sianis
Köszönöm, ez jó lesz!
A height=0 megoldotta a problémát
((Sajnos, át kellett tennem FragmentActivity-be, így az empty view nem működik automatán, hanem ahogy javasoltad, visible/gone párossal megoldottam.)) -
Sianis
addikt
Időközben eddig jutottam:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/ending"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="12dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text=".ext"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true" >
</TextView>
<EditText
android:id="@+id/filter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/ending"
android:hint="@string/filter_hint" >
</EditText>
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:layout_alignParentTop="true"
android:layout_above="@+id/filter" />
</RelativeLayout>De vajon hova kell tenni az empty részt? Pontosabban milyen attribútumokkal, hogy ne takarítson el minden mást?
És egy apróbb kérdés: az ending és filter részeket hogyan lehetne szebben egy magasságba tenni? (Tehát, ha jól olvastam, akkor a fix szélességű ending-nek kell előbb szerepelnie, hogy utána fel tudja tölteni a maradék helyet a filter-rel. De így nem tudom az ending alapvonalát a filterrel egybe állítani.)((Kiegészítve: akkor ugrott fel, ha az empty View jelent meg a list helyett.))
Ha megengeded, hogy belepofátlankodjak, én így csinálnám: [link]
Ha pedig empy részt akarsz csapni hozzá, akkor a ListView alá tennék egy layout-ot, id-ja @android:id/empty lenne és teljesen olyan paraméterekkel menni, mint a ListView, csak a visibility lenne gone.
Így vagy egyik vagy másik layout látszana és kényszerítené ki a lent elemtől, hogy lent is maradjon.
Sianis
-
fatal`
titán
-
doc
nagyúr
-
fatal`
titán
felkerult az elso appom a Google Playbe

Maga a jatek nem egy orult nagy cucc, egy regi, erintokepernyos handheldre keszult jatek portja, amolyan 'technikai teszt' jelleggel, SDL2-vel keszult, efelett van egy egyszeru, nagyreszt az app inditasaert es a reklamok kezeleseert felelos Java reteg.
Abszolut minimalista grafika, egyszeru, gyors jatekmenet, csak semmi bonyolult
Most, hogy ez is megvan, johetnek a komolyabb jatekok is![;]](//cdn.rios.hu/dl/s/v1.gif)
Üdv a play-en saját játékkal rendelkezők klubjában

-
thon73
tag
Időközben eddig jutottam:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TextView
android:id="@+id/ending"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginBottom="12dp"
android:textAppearance="?android:attr/textAppearanceMedium"
android:text=".ext"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true" >
</TextView>
<EditText
android:id="@+id/filter"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_toLeftOf="@+id/ending"
android:hint="@string/filter_hint" >
</EditText>
<ListView
android:id="@+id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:layout_alignParentTop="true"
android:layout_above="@+id/filter" />
</RelativeLayout>De vajon hova kell tenni az empty részt? Pontosabban milyen attribútumokkal, hogy ne takarítson el minden mást?
És egy apróbb kérdés: az ending és filter részeket hogyan lehetne szebben egy magasságba tenni? (Tehát, ha jól olvastam, akkor a fix szélességű ending-nek kell előbb szerepelnie, hogy utána fel tudja tölteni a maradék helyet a filter-rel. De így nem tudom az ending alapvonalát a filterrel egybe állítani.)((Kiegészítve: akkor ugrott fel, ha az empty View jelent meg a list helyett.))
-
WonderCSabo
félisten
ÖÖÖ, az érdekes, mert ha alulra van igazítva, akkor nem szabad neki felugrania soha. Nincs még egyéb constraint megadva amitől elromlik? Igazából elvileg felülre igazítod a listát, alulra a textview-t, ennek elégnek kell lennie.
-
thon73
tag
Igen alignolja is, sőt azt is kiolvastam, hogy először ezt kell megadni, mert különben a listView "mögé" kerül az alsó sornak. Mégis, ha pl. kifogy a lista (mert rászűrtem az elemekre) minden elugrik a... Ha kicsi a képernyő, akkor megintcsak egymás mögé csúsznak az elemek.
-
doc
nagyúr
felkerult az elso appom a Google Playbe

Maga a jatek nem egy orult nagy cucc, egy regi, erintokepernyos handheldre keszult jatek portja, amolyan 'technikai teszt' jelleggel, SDL2-vel keszult, efelett van egy egyszeru, nagyreszt az app inditasaert es a reklamok kezeleseert felelos Java reteg.
Abszolut minimalista grafika, egyszeru, gyors jatekmenet, csak semmi bonyolult
Most, hogy ez is megvan, johetnek a komolyabb jatekok is![;]](//cdn.rios.hu/dl/s/v1.gif)
-
WonderCSabo
félisten
Layout témában szeretnék segítséget kérni.
Erre a felosztásra lenne szükségem:
Ez a kép két, egymásba ágyazott LinerLayout-tal működik. Mindkettőben a Weight paraméter van a nagyobb rész javára 1-0-ra beállítva, így mindig minden látszik. Az alsó filter-sor mindig alul van, és egy sor magas, a lista mindig kitölti a fennmaradó helyet.
Az Eclipse panaszkodik, hogy rossz lesz a performance, ezért megkíséreltem az egészet beletenni egy RelativeView-ba. De! Ha a lista üres, akkor a filter sor felugrik a kép tetejére (persze, mert ilyenkor csak egy sima textView jelenik meg a lista helyett). Ha elfordítom a telót, és megjelenik a bill. is, (tehát alig van hely), akkor végképp összeomlik az egész, és egymásra csúsznak az elemek. (LinearView-nél nincs ilyen baj, igaz a listből alig látszik egy sor.)
Megoldható ez RelativeLayout-ban? Tehát a kérések: filter-sor mindig legalul maradjon, és a filter-sor akkor se csússzon össze a listView-val, ha igen kicsi a rendelkezésre álló terület.
Szia!
Az alsó két TextView-nak adtál alignParentBottom="true" tulajdonságot?
-
thon73
tag
Layout témában szeretnék segítséget kérni.
Erre a felosztásra lenne szükségem:
Ez a kép két, egymásba ágyazott LinerLayout-tal működik. Mindkettőben a Weight paraméter van a nagyobb rész javára 1-0-ra beállítva, így mindig minden látszik. Az alsó filter-sor mindig alul van, és egy sor magas, a lista mindig kitölti a fennmaradó helyet.
Az Eclipse panaszkodik, hogy rossz lesz a performance, ezért megkíséreltem az egészet beletenni egy RelativeView-ba. De! Ha a lista üres, akkor a filter sor felugrik a kép tetejére (persze, mert ilyenkor csak egy sima textView jelenik meg a lista helyett). Ha elfordítom a telót, és megjelenik a bill. is, (tehát alig van hely), akkor végképp összeomlik az egész, és egymásra csúsznak az elemek. (LinearView-nél nincs ilyen baj, igaz a listből alig látszik egy sor.)
Megoldható ez RelativeLayout-ban? Tehát a kérések: filter-sor mindig legalul maradjon, és a filter-sor akkor se csússzon össze a listView-val, ha igen kicsi a rendelkezésre álló terület.
-
lordjancso
senior tag
Ohh basszus, tényleg.........
Köszönöm szépen! Most már tökéletesen működik! -
Karma
félisten
Újabb kérdéssel állnék elő!

Csináltam egy async kérést, feldolgoztam a választ egy ArrayList-be, majd ezt az ArrayListet állítom be egy adapternek, amit a ListActivity-m adaptereként szeretnék használni, hogy feltöltsek az eredménnyel egy ListView-t.A ListActivity-m onCreate metódusában ha kézzel töltöm fel az adaptert, tökéletesen működik:
ArrayList<Article> articles = new ArrayList<Article>();
articles.add(new Article(1, "Első", "Leírás1", "Tartalom1"));
articles.add(new Article(2, "Második", "Leírás2", "Tartalom2"));
articles.add(new Article(3, "Harmadik", "Leírás3", "Tartalom3"));
ArticleAdapter adapter = new ArticleAdapter(this, articles);
setListAdapter(adapter);Ha az async kérés eredményét szeretném feldolgozni, akkor NullPointerException-nel elszáll az egész.
public void onArticleSuccess(List<Article> aResult) {
adapter.setItemList(aResult);
adapter.notifyDataSetChanged();
}Az adapter.setItemList(aResult); sornál hal meg az egész.
Az adapterem így van deklarálva az osztály elején:
private ArticleAdapter adapter;Valami ötletetek van erre a dologra?

Előre is köszönöm!Azt vágod, hogy az onCreate-ben egy lokális változót hoztál létre, miközben az osztályod tagváltozója soha nem kap (az indító nullon kívül) értéket? Vedd ki az "ArticleAdapter" típusnevet az értékadás előtt.
-
lordjancso
senior tag
Újabb kérdéssel állnék elő!

Csináltam egy async kérést, feldolgoztam a választ egy ArrayList-be, majd ezt az ArrayListet állítom be egy adapternek, amit a ListActivity-m adaptereként szeretnék használni, hogy feltöltsek az eredménnyel egy ListView-t.A ListActivity-m onCreate metódusában ha kézzel töltöm fel az adaptert, tökéletesen működik:
ArrayList<Article> articles = new ArrayList<Article>();
articles.add(new Article(1, "Első", "Leírás1", "Tartalom1"));
articles.add(new Article(2, "Második", "Leírás2", "Tartalom2"));
articles.add(new Article(3, "Harmadik", "Leírás3", "Tartalom3"));
ArticleAdapter adapter = new ArticleAdapter(this, articles);
setListAdapter(adapter);Ha az async kérés eredményét szeretném feldolgozni, akkor NullPointerException-nel elszáll az egész.
public void onArticleSuccess(List<Article> aResult) {
adapter.setItemList(aResult);
adapter.notifyDataSetChanged();
}Az adapter.setItemList(aResult); sornál hal meg az egész.
Az adapterem így van deklarálva az osztály elején:
private ArticleAdapter adapter;Valami ötletetek van erre a dologra?

Előre is köszönöm! -
lordjancso
senior tag
Tegnap még késő este állítgattam rajta, és azt vettem észre, hogy egyik pillanatról a másikra működik.
Nem tudom, hogy melyik módosítás lehetett a titok nyitja, lehet hogy a getCount(), mert kezdetben 0-t adott vissza, de aztán megcsináltam. Lehetséges, hogy ez volt a hiba.
Viszont amikor sikerült, annyira örültem neki, hogy rögtön elmentem aludni.
Most mindjárt kipróbálom, hogy a getCount() visszatérési értékét 0-ra állítom. -
Sianis
addikt
Sziasztok!
Egy alkalmazásomban ezt a PagerSlidingTabStrip komponenst használom a menük és annak tartalmának megjelenítésére.
3 menüpontom van, ugye mindhárom egy-egy fragment amik egy ViewPager-ben helyezkednek el.
A MainActivity-m onCreate metódusában megkeresem az xml-ben lévő ViewPager-t, hozzárendelem a tabokat, minden oké, a menüm tökéletesen működik.
A probléma ott kezdődik, hogy az egyik menüpontom tartalma (tehát a ViewPager-ben lévő Fragment tartalma) egy ListView lenne.
Az adott fragmentemmel extendelem a ListFragmentet, onStart metódusában csinálok egy ArrayListet, amit feltöltötök a menüpontokkal, majd példányosítom a menüadapteremet, aminek átadom ezt az ArrayListet és a végén meghívom a setListAdapter(adapter) függvényt, így átadva a feltöltött adapteremet.
A problémám az, hogy csak várom a csodát, de egy tök üres fragment jelenik meg az orrom előtt...
Nem tudna valaki tippet adni, hogy mi felett siklottam el?
Remélem elég infót adtam, hogy tudjatok segíteni!
Előre is köszönöm!Szerk: Valószínűleg azt nem tudom, hogy tegyem rá a ListView-t a layoutra...
A példányosított adapter nem null? A getCount() metódusa nem 0-t ad vissza? a getView() nem üres vagy null view-kat ad vissza?
Sianis
-
lordjancso
senior tag
Sziasztok!
Egy alkalmazásomban ezt a PagerSlidingTabStrip komponenst használom a menük és annak tartalmának megjelenítésére.
3 menüpontom van, ugye mindhárom egy-egy fragment amik egy ViewPager-ben helyezkednek el.
A MainActivity-m onCreate metódusában megkeresem az xml-ben lévő ViewPager-t, hozzárendelem a tabokat, minden oké, a menüm tökéletesen működik.
A probléma ott kezdődik, hogy az egyik menüpontom tartalma (tehát a ViewPager-ben lévő Fragment tartalma) egy ListView lenne.
Az adott fragmentemmel extendelem a ListFragmentet, onStart metódusában csinálok egy ArrayListet, amit feltöltötök a menüpontokkal, majd példányosítom a menüadapteremet, aminek átadom ezt az ArrayListet és a végén meghívom a setListAdapter(adapter) függvényt, így átadva a feltöltött adapteremet.
A problémám az, hogy csak várom a csodát, de egy tök üres fragment jelenik meg az orrom előtt...
Nem tudna valaki tippet adni, hogy mi felett siklottam el?
Remélem elég infót adtam, hogy tudjatok segíteni!
Előre is köszönöm!Szerk: Valószínűleg azt nem tudom, hogy tegyem rá a ListView-t a layoutra...
Új hozzászólás Aktív témák
-
1300 - 1201
5691 - 4001 4000 - 3901 3900 - 3801 3800 - 3701 3700 - 3601 3600 - 3501 3500 - 3401 3400 - 3301 3300 - 3201 3200 - 3101 3100 - 3001 3000 - 2901 2900 - 2801 2800 - 2701 2700 - 2601 2600 - 2501 2500 - 2401 2400 - 2301 2300 - 2201 2200 - 2101 2100 - 2001 2000 - 1901 1900 - 1801 1800 - 1701 1700 - 1601 1600 - 1501 1500 - 1401 1400 - 1301 1300 - 1201 1200 - 1101 1100 - 1001 1000 - 901 900 - 801 800 - 701 700 - 601 600 - 501 500 - 401 400 - 301 300 - 201 200 - 101 100 - 1
-
Fórumok
LOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokMobilarena - mobil fórumok
Okostelefonok Mobiltelefonok Okosórák Autó+mobil Üzlet és Szolgáltatások Mobilalkalmazások Tartozékok, egyebek Mobilarena blogokPROHARDVER! - hardver fórumok
Notebookok TV & Audió Digitális fényképezés Alaplapok, chipsetek, memóriák Processzorok, tuning Hűtés, házak, tápok, modding Videokártyák Monitorok Adattárolás Multimédia, életmód, 3D nyomtatás Nyomtatók, szkennerek Tabletek, E-bookok PC, mini PC, barebone, szerver Beviteli eszközök Egyéb hardverek PROHARDVER! BlogokIT café - infotech fórumok
Infotech Hálózat, szolgáltatók OS, alkalmazások SzoftverfejlesztésFÁRADT GŐZ - közösségi tér szinte bármiről
Tudomány, oktatás Sport, életmód, utazás, egészség Kultúra, művészet, média Gazdaság, jog Technika, hobbi, otthon Társadalom, közélet Egyéb Lokál PROHARDVER! interaktív
- Futás, futópályák
- Milyen okostelefont vegyek?
- Huawei Watch Fit 5 Pro - jó forma
- Lexus, Toyota topik
- HiFi műszaki szemmel - sztereó hangrendszerek
- Archttila: SMART tesztelés automatizálva: smartctl poller script Zsh-ban, RPi-re
- Milyen monitort vegyek?
- Forza sorozat (Horizon/Motorsport)
- A fociról könnyedén, egy baráti társaságban
- Szombathely és környéke adok-veszek-beszélgetek
- További aktív témák...
- Macbook Pro 16" A2485 2021 M1 MAX 32/1TB 32 GPU Astro (Dobozos, 16 ciklus 100% akku)
- Apple Watch Series 11 GPS + Cellular 46mm fekete, magyar, 3 év garancia
- GYÖNYÖRŰ MacBook Pro 14" M2 Pro 16 GB - 512 GB GAR ÉS jótállás!
- Intel Core ULTRA 9 285K +32GB 7600MHz Patriot Viper XTREME 5 DDR5 kit! (Bolti ár: kb 600ezer Ft!)
- Lenovo Legion Pro 5 - 16IRX10 - i9 14900HX - RTX 5070 - 32GB - 1TB
- Samsung Galaxy Watch Ultra LTE / 32GB / Kártyafüggetlen / 6Hó Garancia
- GYÖNYÖRŰ iPhone 16 Pro 128GB Desert Titanium -2 ÉV GARANCIA - Kártyafüggetlen, MS5153, 91% AKKSI
- HP EliteBook 830 G5, G6 13,3" i5, 16GB RAM, SSD, jó akku, számla, 6 hó gar
- LG 65EU961H 4K OLED 65" TV! 3840x2160
- Tablet felvásárlás!! Apple iPad, iPad Mini, iPad Air, iPad Pro
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest




De azért megpróbálom érthetően leírni, max a többiek kijavítanak majd.


Azt szeretem az androidban, hogy olyan konzekvens...

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


