- Brutálisan drága lehet a Poco F9 Ultra
- Xiaomi 17 - még mindig tart
- Samsung Galaxy S26 Ultra - fontossági sorrend
- Android alkalmazások - szoftver kibeszélő topik
- Huawei Watch GT 4 - kerek karék
- Honor 600 – kezes, kitartó, költséges
- Samsung Galaxy S25 - végre van kicsi!
- Telekom mobilszolgáltatások
- Honor 200 Pro - mobilportré
- Hat év támogatást csomagolt fém házba a OnePlus Nord 4
-
1900 - 1801
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
Mobilarena - 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 Tabletek, E-bookok Nyomtatók, szkennerek 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ésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁ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
-
Benex
senior tag
-
Karma
félisten
Ezt nézd meg: stackoverflow
-
kemkriszt98
tag
Köszönöm, működik

-
WonderCSabo
félisten
A Toast-ot nem tudod használni háttérszálon, csak a UI szálon. Az onPostExecute-ban hívogasd a Toast-ot, az az UI szálon hívódik meg, és pont erre való.
-
Benex
senior tag
Java kód szinten, hogy tudom leellenőrizni, hogy rootolt-e a készülék, vagy nem? (manifest permission nélkül)
-
kemkriszt98
tag
-
eastsider
nagyúr
-
Karma
félisten
Egyébként ilyen lehetőség nincs. Használd a ContentProvidert ha a felhasználó bevonása nélkül akarsz működni.
-
Karma
félisten
-
Benex
senior tag
Én az intentet hívása elé tenném.

-
h1ght3chzor
őstag
-
Benex
senior tag
Most lehet hülyeség írok (kezdő vagyok még eléggé) de valahol olvastam a "notifydatasetchanged() ;" cuccrol, és mintha ilyenre lenne jó, hogy frissíti a listát és utána ha meghivod az intentet szerintem hozzá adja. (amit tanultam eddig abból élek, szóval megint elmondom, hogy bocsánat ha hülyeség írtam
) -
h1ght3chzor
őstag
Ha ezt az intent.putExtra-t használom, akkor hogy tudom megcsinálni, hogy a default calendar-t válassza ki, és a startActivity(intent); ne hívja meg azt a felületet, ahol még módosítani tudom a hozzáadott event-et, hanem automatikusan illessze be?
public void insert() {
TimeZone timeZone = TimeZone.getDefault();
Intent intent = new Intent(Intent.ACTION_INSERT,
CalendarContract.Events.CONTENT_URI);
// Add the calendar event details
intent.putExtra(CalendarContract.Events.TITLE, "Launch!");
intent.putExtra(CalendarContract.Events.DESCRIPTION,
"Learn Java Android Coding");
// intent.putExtra(CalendarContract.Events.EVENT_LOCATION,
// "Sanfoundry.com");
Calendar startTime = Calendar.getInstance();
startTime.set(2014, 3, 18, 13, 30);
intent.putExtra(CalendarContract.EXTRA_EVENT_BEGIN_TIME,
startTime.getTimeInMillis());
Calendar endTime = Calendar.getInstance();
endTime.set(2014, 3, 18, 14, 30);
intent.putExtra(CalendarContract.EXTRA_EVENT_END_TIME,
startTime.getTimeInMillis());
intent.putExtra(Events.EVENT_TIMEZONE, timeZone.getID());
// intent.putExtra(CalendarContract.EXTRA_EVENT_ALL_DAY, true);
// Use the Calendar app to add the new event.
intent.putExtra(Events._ID, 3);
startActivity(intent);
} -
thon73
tag
Régen is ui threaden töltődött, aztán mégis használtuk a progikat...
Ráadásul, úgyis meg kell várni amíg betöltődik, mer ugye épp a listát akarod megnézni.
A saját tapasztalatom az, hogy érdemes Content Providert csinálni. Kicsit korlátozott, amit az adatbázissal csinálhatsz, de jobban átlátható a kód, könnyebben belepasszol abba, amit az Android szeretne.Én ugyan nem vagyok nagy guru, de szívesen belenézek a debugba; több szem többet lát...
-
h1ght3chzor
őstag
-
WonderCSabo
félisten
-
fatal`
titán
Nem tudom, hogy működik-e még, meg csak valahol olvastam, nem volt rá szükségem, de próbáld meg drag & droppal rádobni a gapps zipjét.
-
eastsider
nagyúr
-
eastsider
nagyúr
köszi! le is szedtem még régebben

igen, a konstruktor deprecated
@SuppressWarnings("deprecation")
@Override
public void bindView(View view, Context context, Cursor cursor)
{
super.bindView(view, context, cursor);nekem megy így, csak deprecated. nem egy nagy adatbázis... szarni rá, és csináljam így, vagy ha már itt tartok okulásképp érdemes a content providert?
azt olvastam, betöltésnél lehet ez gázos, mert az UI threadben töltődik be az adatbázis is...
-
thon73
tag
Én megcsináltam mindkettőt. Ha CursorLoader-t szeretnél használni, akkor kell hozzá ContentProvider is - úgy tudom. Egyiket se nagyon nehéz elkészíteni, de az utóbbi meglehetősen hosszú. A kész Loader csak pár sor viszont. Saját Loader csak akkor kell - szerintem - ha nem sqlite a forrás, hanem valami elvarázsolt dolog.
Loader nélkül már nem kedveli a rendszer - vagyis deprecated, de működik.
Pár hozzászólással ezelőtt feltettem egy E-number kezelő kódot, abban mindkettőre szerepel példa. -
eastsider
nagyúr
-
h1ght3chzor
őstag
-
kemkriszt98
tag
Sziasztok, a php kódba mit kell írnom, hogy "visszakuldjem" amit kell a httpget kérés eredményeképp ? A php kód megvan tehát ha bele írok pár print függvényt akkor böngészőben tökéletesen működik. ...
-
fatal`
titán
Genymotionre úgytudom lehet gappsot flashelni és utána működőképes lehet a dolog.
(#1866) Benex: Az FC valószínűleg valami exception miatt van, esetleg nézd meg az adb logot.

-
eastsider
nagyúr
-
eastsider
nagyúr
Sziasztok!
kicsit megakadtam
körülmények: SQlite adatbázis, 2 tábla össz, és megcsináltam CursorAdapterrel a listview feltöltését.
teljesen jól működik.. de tudjuk, hogy a cursoradapter deprecated, és az is nyilvánvaló hogy miért... az én appomnál gyorsnak tűnik, de mégsem valami elegáns a megoldás....
hogy tudnám ezt átalakítani LoaderManager-esre? ott akadtam meg, hogy, hogy kérem le a rekordokat... mert van egy APIdemo, amiből a contactokat íratja ki szépen, de nekem ez így nem jó...
ContentProvidert is néztem, hogy kellhet, ámbár az alkalmazásom adatait nem akarom megosztani más környezetekkel
merre nézelődjek? a cursoradapterrel egyébként szépen működik
contentprovider ready a sqliteonhelper osztályom, de ha nem lenne muszáj ezzel bíbelődni, kihagynám a dolgot -
h1ght3chzor
őstag
-
Karma
félisten
Venni egy olcsó androidos telefont, és azon kísérletezni... A szöveg elég egyértelmű, hogy kell egy Google (vagy más naptárt szolgáltató) fiók, de még ha fel is vennél G fiókot, nem fog működni.
-
h1ght3chzor
őstag
-
Karma
félisten
Sima intentnél ha több lehetőség is van, akkor majd a rendszer megkérdi a felhasználót.
Kódot most nem tudok produkálni erre, de két lehetőség van attól függően hogy mit szeretnél. Vagy most megnézed a nálad lévő eszközön hogy milyen naptár van és annak az ID-jét beégeted a kódba az 1-es ID helyett; vagy felraksz a UI-ra egy Spinnert amivel ki lehet választani a szimpatikusat.
A Cursorban minden adat benne van - mint láthatod, lekéri az ID-t, a naptár nevét, színt, stb.
-
h1ght3chzor
őstag
-
Karma
félisten
Nézd meg még egyszer a dokumentációt a kódrészlet kapcsán, a példakód végén ott van, hogy mire használja az Urit. Neked nem feltétlen van rá szükséged, csak akkor, ha ezt a konkrét eseményt újra el akarod érni keresgélés nélkül.
Ugyanis a kódrészlet a naptár ContentProviderrel beszélget. A ContentProviderek pedig minden általuk kezelt objektumot (pl. eseméyn) egy Urival azonosítanak; az insert ezt adja vissza miután megtörtént a beszúrás.
A kódodnak egyetlen problémája van így ránézésre: a calendar_id-t nem lehet csak úgy hasraütésszerűen 1-re állítani. Meg kell nézni, hogy a telefonon milyen naptárak vannak, és a szimpatikusat választani. A középső dobozban van a kód, amivel le tudod őket kérdezni.
-
h1ght3chzor
őstag
Senki?
-
Benex
senior tag
Unfortunetly, Simple Reboot has stopped , gondoltam arra , hogy reboot miatt áll le, de nem hiszem, hogy az a baj. Arra gondoltam , hogy ilyenkor kell e a finish();???
(Újabb észrevétel ART vm alatt nem megy,azaz itt is FC lesz, de itt nem is indul újra, most állok vissza dalvik-ra ) -
Karma
félisten
-
Benex
senior tag
Sziasztok.
Egy nagyon egyszerű prgramot akarok csinálni (vagyis kész van) de van egy kicsi hiba. A program csak annyi lenne , hogy egyetlen gomb van ami újra indítja a telefont.
A Manifest-ben beletettem , hogy kérjen superuser engedélyt , így:
<uses-permission android:name="android.permission.ACCESS_SUPERUSER"/>Ezzel nincs is semmi bajom, a kód hogy reboot legyen így néz ki:
public void reboot(View v) throws IOException {
Runtime.getRuntime().exec(new String[] { "/system/bin/su", "-c", "reboot now" });
}A program müködik, tehát újra indul a telefon viszont mielőtt megtenné hibaüzenetet dob ki.
Nem tudjátok, hogy mitől lehet???
Előre köszönöm a segítségeteket!
-
Sianis
addikt
-
bgergo93
csendes tag
Sziasztok!
Valaki nem tud véletlenül, egy egyszerű módszert arra, hogy az ébresztő óra eseményére feliratkozzak.
Tehát, amikor megszólal az ébresztő, arra szeretnék feliratkozni, az intent-filterek között nem találtam, de biztos vagyok benne, hogy létezik valami hasonló.
Tasker-ben Alarm-Done event a neve.Vagy pedig manuálisan megkell szereznem az ébresztési időpontokat, és beállítani rá, egy Broadcast eseményt?
-
daniele
aktív tag
Sziasztok.
Nem akadna köztetek olyan ember aki összedobna egy kis appot, vagy esetleg nem tudtok valakit akit fellehet keresni ez ügybe? Privátba leírnám a részleteket egy vállalkozó szellemű embernek.
-
h1ght3chzor
őstag
Sziasztok!
Naptárba szeretnék bejegyzést létrehozni. Lenne pár kérdésem, hogy hogyan is kellene pontosan. Uri mire való, hogyan kellene használnom?
Az alábbi kódot írtam, kérlek ez alapján, ha tudnátok segíteni, nagyon jó lenne!

public void addEvent(int calendar_id, String title, Calendar beginTime, Calendar endTime, String description,String event_timezone) {
ContentResolver contentResolver = getContentResolver();
ContentValues calEvent = new ContentValues();
calEvent.put(CalendarContract.Events.CALENDAR_ID, calendar_id); // XXX pick)
calEvent.put(CalendarContract.Events.TITLE, title);
calEvent.put(CalendarContract.Events.DTSTART, start.getTimeInMillis());
calEvent.put(CalendarContract.Events.DTEND, endTime.getTimeInMillis());
calEvent.put(Events.DESCRIPTION, description);
calEvent.put(CalendarContract.Events.EVENT_TIMEZONE, event_timezone);
Uri uri = contentResolver.insert(CalendarContract.Events.CONTENT_URI, calEvent);
}
Calendar beginTime = Calendar.getInstance();
beginTime.set(2014, 3, 14, 13, 30);
Calendar endTime = Calendar.getInstance();
endTime.set(2014, 3, 14, 13, 30);
addEvent(1, "Teszttitle", beginTime, endTime, "Tesztdescription", "America/Los_Angeles"); -
Yany
addikt
Srácok, kérnék egy kis segítséget. Szeretném felmérni, hogy az alkalmazás, amit készítünk, milyen eszközön indul el rendesen és min nem hajlandó. Megtennétek, hogy ránéztek minél többféle készülékkel?
A cucc ingyenes és az is marad, úgyhogy bátorítok mindenkit a letöltésére. Arra is, hogy a véleményét elmondja akár itt, akár privátban, akár a play store-ban. Minden info és vélemény segít abban, hogy minél hamarabb minél jobb dolgot alkossunk:
[BloomYou]
Előre is nagyon köszi nektek.

-
kemkriszt98
tag
Nem igazán akar össze jönni.... az a fehér csík csak ott marad...
-
bAtt001
addikt
-
Sianis
addikt
-
Karma
félisten
Meg ha megnézed a támogatott országok listáját, ott is látszik.

-
fatal`
titán
Aha, konzolon értesítés. Belépsz és baloldalon a hirdetmények között hozta.

(#1851) sutszi: Ezekhez nem szokás eseményt bejelenteni, folyamatosan bővül az országok listája, most ért ide.

-
WonderCSabo
félisten
-
WonderCSabo
félisten
Hmm, ezek szerint ez nem elég neki. Próbáld ki itt a válaszokat, több is jó. TitleBar már nincs, helyette az ActionBar van API 11 óta.
-
MrSealRD
veterán
-
Superhun
addikt
-
h1ght3chzor
őstag
-
fatal`
titán
Merchant registration available in Hungary You can now register as a Google Play Merchant if you reside in Hungary.

-
kemkriszt98
tag
Akkor megmondanád hogy melyik a Title Bar?
Amúgy ez a fehér csík maradt helyette:
Ezzel mit lehetne kezdeni? -
WonderCSabo
félisten
A custom themedhez add hozzá ezt a sort:
<item name="android:windowActionBar">false</item>
Amit te el akarsz tüntetni, az nem a TitleBar, hanem az ActionBar.
-
kemkriszt98
tag
-
Karma
félisten
Tényleg így van. Próbálkozni is kár.
-
h1ght3chzor
őstag
Köszönöm, beimportáltam, de mivel sajnos nekem csak emulatorom van, ezért csak ott tudom szimulálni. Esetleg tudtok javasolni beállításokat, amivel el is indulna? Mert jelenleg nem fut, pedig 4.4.2 api 19...
bluetooth binder is null hibaüzenet fogad, meg hogy ami most van virtual device nem jó neki.Vagy ez tényleg így van? The emulator does not support Bluetooth, as mentioned in the SDK's docs and on several other places.

-
WonderCSabo
félisten
A BluetoothChat példaprogiról van szó. Itt találod <SDK_HOME>\samples\android-<XX>\legacy. Persze csak akkor, hogy letöltöd az adott API levelhez a samples csomagot.
-
h1ght3chzor
őstag
E/BluetoothAdapter(1140): Bluetooth binder is null a pontos hiba, mit kellene csinálnom, hogy le tudjon futni?
-
h1ght3chzor
őstag
Letöltöttem, de nem fut sajnos nekem.

-
kemkriszt98
tag
Sziasztok, szeretnék készíteni egy alkalmazás ami kb abból állna, hogy a userek "feltölthetnek" egy szöveget (esetleg regisztrálhatnak) ilyesmi.... (semmi haszna csak tanulás céljából). A baj csak az hogy még soha nem foglalkoztam ilyesmivel... az androidos részét majd csak össze googlizom de a pc-s rész esetében (elvileg ott tárolnám az adatokat) fogalmam sincs, hogy merre induljak, mit keressek..... Minek kellene utána néznem?
-
h1ght3chzor
őstag
-
Sianis
addikt
Hali!
Nem nagy kaland, szerintem Bluetooth-szal jobban jársz. Sima soros kommunikáció nem egy nagy feladat rajta, az Android oldalán van egy példa chat alkalmazás, az gyakorlatilag a keresés - párosítás - küldés/fogadás részét teljesen lefedi.
A mikrokontrolleres rész nem ide tartozik, de gondolom azzal jobban állsz.
Sianis
-
Discon00b
csendes tag
Üdv!
Szakdoga témának egy mikrokontroller és egy android alkalmazás készítését jelöltem meg témának.
Szerencsére van időm megírni mindkét programot, tehát nem hajt a tatár.Maga az android alkalmazás néhány nyomógomból és egy zöld-piros "lámpából" állna.
A feladat maga "fiktív", nem kerül tényleges beépítésre egyik eszköz sem, de természetesen a bizottságnak majd prezentálni kell a történetet.Tehát az alkalmazás felépítése:
- Zöld-piros visszajelző (ez a rész kapna egy jelet a mikrok.-től hogy a szenzor érzékelt valamit. Ez a rész csak adatot kap, nem küld semmit)
- Yes-No funkció gombok (ezek küldenek jelet a mikrok.-nek hogy start vagy stop)
- Mivel ez egy automatizálás feladat, lenne még egy Warning Msg mikor a készülék alapállapotban van, kap a kezelő egy jelzést a készülékre hogy új figyelmeztetés érkezett, hang + rezgés formában.
Mindezek Bluetooth vagy WiFi-n keresztül kommunikálná le, bár még nem tudom hogy melyik az egyszerűbb a portok és a hozzáférés megadásának szempontjából.
Egy szó mint száz. Ha lenne egy önkéntes aki tudna tartani egy gyors talpalást, vagy csak felvázolni hogy ezt hogyan lehet megvalósítani, honorálnám. Igyekszem egyedül megcsinálni természetesen, tudom hogy sokan vinnyognak segítségért, mint most én, de reménykedem

-
Karma
félisten
1) Addig szép, hogy Bluetooth, de milyen profil? Mert például más osztályok kellenek a Serial Port Profile-hoz a BluetoothSocket/BluetoothServerSocket osztályok kellenek, és úgy viselkedik, mint egy TCP socket. De van tucatnyi más lehetőség (pár gyakori: PAN, HID, A2DP, OPP). Az egész hóbelebanchoz tartozik egy guide az Android SDK dokumentációjában, ezzel kezdhetnél.
2) Ehhez is csak a dokumentációt kéne olvasnod, íme az event létrehozás mikéntje.
3) Meglepő módon a Service osztály dokumentációja még példát is tartalmaz a magyarázat mellett.
-
h1ght3chzor
őstag
Sziasztok!
Lenne 3 kérdésem.
Hogyan kell:
bluetooth-on keresztül kommunikálni szervizzel?google naptári bejegyzéseket csinálni?
androidon szerviz alkalmazást írni, a programom mellé, mögé?
Köszönöm a válaszokat!

-
thon73
tag
Kedves Adatbázis Guruk!
Csinált már valaki olyat, hogy NEM a beépített szöveges keresésekkel keresett android sqlite adatbázisban? A lehetőségeket (keresésre külön oszlop pl.) olvastam itt-ott a neten, ezt pl ki is próbáltam. De saját tapasztalata (amit esetleg meg is osztana) van valakinek? Ahol esetleg nem kéne duplázni az adatokat.
(((az ANDROID sqlite lényeges, mert C forráskódban láttam erre beépített lehetőséget is, de tudtommal itt nincs)))Ha valaki zsákutcába futott ezzel, és elmondja, annak is örülnék; legalább arra már nem próbálkozom.
Köszönöm!
-
WonderCSabo
félisten
Defaultból mindig a View hierarchiában lehető legelső focusble view-ra ugrik a focus.
-
h1ght3chzor
őstag
-
Karma
félisten
Nem biztos hogy jó megoldás, de egy próbát megérhet, hogy az onCreate-ben hívd meg a requestFocus metódusát annak az ET-nek, amit szeretnél fókuszálni.
-
h1ght3chzor
őstag
-
Karma
félisten
A setEnabled metódust használd inkább.
-
h1ght3chzor
őstag
Én is így gondoltam, de valamiért nem működik. Így csináltam:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button btnKijelentkezes= (Button) findViewById(R.id.btnKijelentkezes);
btnKijelentkezes.setClickable(false); -
Karma
félisten
A gombok létrehozása után azonnal (pl. onCreate(), a setContentView() után) már állíthatod.
-
h1ght3chzor
őstag
Hol kellene pontosan letiltanom a gombokat amiket én definiáltam, hogy a program elindítása után ne lehessen rákattintani?
setOnClickListener-ben ez sikerül is, de csak miután megnyomtam vmilyen gombot. -
kemkriszt98
tag
-
Superhun
addikt
Ha kifejezetten facebook kell, akkor a facebook SDK-t kell használnod.
-
kemkriszt98
tag
Sziasztok, ez alapján próbáltam beilleszteni egy Share gombot a programomba, a baj csak az, hogy csak a skype meg a különböző e-mail kliensek jelennek meg mint választási lehetőség, nekem viszont a legjobban a facebook kellene... (persze azért megtartanám a choosert)
-
Submarine
senior tag
-
thon73
tag
Csak együttérezni tudok.

A Support Fragmenttel én is tapasztaltam anomáliákat 2.3.x és 4-x alatt nem egyformán működött. A másik falba ütközésem a nested megvalósítással történt, így utólag valószínű pont emiatt. (Nem megfelelően állt fel a layout, különösen újraindításnál.) Én feladtam a nested variánst, azóta mindent szigorúan az Activity vezérel (szinte csak erre tartom
)
De elismerésem, hogy ezt így kibogoztad!!!
-
Superhun
addikt
-
Submarine
senior tag
Sziasztok!
Feltettem virtuális gépre a nemrég kiadott android-x86-4.4-RC1.iso -ról 4.4.2-őt.
Minden szép és jó, csak mivel ez PC, elég vicces láthatatlan egérrel kóricálni rajta.Egyszóval hogy lehet elővarázsolni rajta a kurzort?
A billentyűzetet azt magától ismeri..Azt hiszi magáról hogy tablet. És azt kell mondjam, régi netezős-filmnézős gépekre ez lesz a működő alternatíva, főleg most hogy az xp-nek is leáldozott.
Bocs ha rossz topicba jöttem!
-
WonderCSabo
félisten
Ma hajnali ötig szívtam a support lib miatt. A support Fragmenteket mindenki ismeri. Viszont kiderült a Googlenek egy turpissága, ami teljesen dokumentálatlanul történik support Fragmentek esetében.
Fragment hozzáadása alatt ez történik:
f.mView = f.onCreateView(f.getLayoutInflater(f.mSavedFragmentState),
null, f.mSavedFragmentState);
if (f.mView != null) {
f.mInnerView = f.mView;
f.mView = NoSaveStateFrameLayout.wrap(f.mView);
if (f.mHidden) f.mView.setVisibility(View.GONE);
f.onViewCreated(f.mView, f.mSavedFragmentState);
} else {
f.mInnerView = null;
}A NoSaveStateFrameLayout pedig ez:
class NoSaveStateFrameLayout extends FrameLayout {
static ViewGroup wrap(View child) {
NoSaveStateFrameLayout wrapper = new NoSaveStateFrameLayout(child.getContext());
ViewGroup.LayoutParams childParams = child.getLayoutParams();
if (childParams != null) {
wrapper.setLayoutParams(childParams);
}
NoSaveStateFrameLayout.LayoutParams lp = new NoSaveStateFrameLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT);
child.setLayoutParams(lp);
wrapper.addView(child);
return wrapper;
}
...
}Amint fent látható a Google azt a turpisságot követi el, hogy miután az onCreateView lefut, a Fragmentet egy új FrameLayout-ba wrappeli szépen... Ez a FrameLayout pedig jól szétcseszi a View hiearcihámat, különösen nested Fragmentek esetén. Egyébként csomó idő is volt rájönni erre... Az is totál inkorrekt, hogy elvileg az onViewCreated első paraméterének az a specifikációja, hogy az a View, amit az onCreateView csinált - na itt ez se fog érvényesülni, hiszen a wrapper FrameLayout lesz az onViewCreated első paramétere.
Remélem időt spóroltam Nektek ezzel, hátha Ti is belefuttok ilyesmibe.
-
thon73
tag
Nem is rajzolnak a fragmentek, csak különböző paramézersorokat kérnek be, amiből összeáll a végén egy rajz. De azt nem is látom, csak a végére gyártja le, és mutatja meg az egyik fragment. De ez nem lényeges.
Az onResumeFragments azért kell, mert az onResume részig még nem álltak össze a Fragmentek, már amit a rendszer állít vissza.
Pont ez teszi nehézzé, hogy nincs olyan pont, ami még biztosan le[ut, de a Fragmentek már üzemkészek. Viazont kezdem átlátni, hogy két irányt kell elkészíteni. Az első elkészítéskor az onActivityCreate érheti el a másik Fragmentet ˙Activityn át), később viszont ekkor még nem látja az Activity a másik Fragmentet, tehát nekem kell explicite az OnResumeFragmentsben meghívnom egy adatokat beállító külön fragment metódust.
Ez a megoldás nem túl szép, szerintem a staticus mező tisztább! Köszi a segítséget, a beszélgetés nélkül még törtem volna rajta a fejem egy darabig. -
WonderCSabo
félisten
Nem akarok kikerülő választ adni, de sztem egy bonyolult rajz Fragmentekből való összeállítása egyáltalán nem jó ötlet. A Fragmenteket nem erre találták ki.
A konkrét kérdésedet most hirtelen nem látom át, az onResumeFragments metódust nem használtam sosem, sőt bevallom derekasan picit az egész configuration change kiesett a gyakorlatból, mert a mostani hosszú prokejtemben az egész app álló képes...
-
thon73
tag
Az, hogy lényeges különbség van a retained Fragment ELSŐ LÉTREHOZÁSA, és az összes többi VISSZAÁLLÍTÁS között.
Vagyis:
A Fragmentet először az Activity.onResumeFragments részben fogom megtalálni. Ha nincs meg, akkor itt kell először is létrehozni.
Ha nem volt meg, akkor a létrehozás után még semmilyen élitciklus nem fut le (majd csak az onResumeFragments UTÁN)
Ha viszont megvolt, akkor eddigre minden lefutott, beleértve a Fragment.onResume metódusát is.A konkrét próbálkozásban egy ListFragmentet készítettem, amelyik az adatait ebből a megőrzött globális adatállományból veszi (a végső megoldás mindig egy kicsit összetettebb persze). Ez azt jelenti, hogy valahol meg kell mondjam az adapternek, hogy hol vannak az adatai.
Az első létrehozáskor (persze ilyenkor az adatállomány még üres, de majdan ide fog bekerülni) nem lesz gond, hiszen mire a ListFragment életciklus részei lefutotnak, ott van az Activityből elérhető módon a másik, adatokat tartalmazó Fragment.
Minden további indításkor azonban mindkét Fragment végigfut az onResume-ig, mielőtt én egyáltalán látnám az adatokat tartalmazó Fragmentet az Activity.onResumeFragments részében! Vagyis nekem kellene kiadni egy pl. MyListFragment.onVariableReady() utasítást, ami betölti az adapterbe az immáron elérhető adatokat.
Ez a megoldás viszont az első indításkor nem lesz jó, hiszen még adapter sincs sehol!
Hozzáteszem: ez a ListFragment dolog valójában csak egy próba. Nekem egy sok részletből álló rajzot kellene elkészítenem, aminek az egyes részeit tudom egy-egy Fragmenttel megalkotni. Az alapadatokat természetesen mentem, de minden apró számítást nem akartam. Ettől a speciális problémától elvonatkoztatva a kérdés általános érvényű: hová tegyem a Fragment megőrzendő adatait, ha magát a konkrét Fragmentet nem akarom megőrizni ((mert pl. változik a gép fordításával))?
A static field egyébként jó ötlet, csak úgy emlékszem, valamiért (újra el kellene olvasni) kerülendőnek javasolta a hivatalos doksi. De ezt elő kéne ásni, lehet, hogy rosszul emlékszem...
((Bocs, ha kicsit bonyolult, már játszom vele egy ideje. Szívesen küldök kódot, de a sallangok, és próbálkozások miatt előbb ki kellene fésülnöm. Bár kivételesen a szöveg talán többet mond.))
-
WonderCSabo
félisten
-
thon73
tag
Miért ajánlgatja a doksi a retained Fragmentet, ha ilyen nehéz megoldani az elérését másik Fragmentből!?
A static field-es osztályt hogyan mentem meg biztonságosan? Átviszem az onSaveInstanceState-ben?
Menteni nem akartam, akár nagy is lehet a mérete. Ezek csak olyan "melléktermék" adatok, amik megkönnyítik, hogy nem kell mindent újraszámolni, ha egy másik Fragment nyílik meg, vagy ha újraindul az Activity. De a static field szimpatikus. Az végső soron az Activity-hez kapcsolható, semmi dolga a Fragmentekkel. Így csak az Activity-ig kell "visszanyúlnom" az adatokért.
-
WonderCSabo
félisten
-
thon73
tag
Egyszerűsítem a kérdést:
Hová tegyem azokat az (akár nagyméretű) globális adatokat, amiket több fragmentből el akarok érni, de szeretném megtartani őket a konfigurációs változások alatt is?
((Egy ötletem van: Application szintre. Megpróbáltam a retained fragmentet, de sehogyse megy.)) -
XperiaP
csendes tag
-
bAtt001
addikt
végük csak tablelayout maradt hogy az jó, valahogy elbeszéltünk egymás mellett emailben vagy nemtom

-
thon73
tag
Néhány globális változót egy "retained fragment"-be helyeztem. Létezik olyan pont, amikortól a többi fragment (természetesen az activity-n keresztül) elérheti ezeket a változókat?
Uis. a változók csak az activity onResumeFragments részére térnek vissza (itt tudom újra megtalálni a megtartott fragmentjüket). Ugyanakkor eddigre az összes többi, nem megtartott Fragment is feláll, és az Fragmentek onResume része is lefut.
Van még valamilyen pont az onResume UTÁN, ahol MÁR tudnék kommunikálni a többi fragmenttel (konkrétan a megtartottal), de MÉG nem indult el a Fragment a felhasználó szempontjából?
Előre is köszönöm!
((Átmenetileg úgy oldottam meg, hogy az Activty "értesíti" a Fragmenteket, hogy a változók rendelkezésre állnak. De nem hiszem el, hogy ez lenne a real android way...)) -
WonderCSabo
félisten
-
bAtt001
addikt
-
eastsider
nagyúr
-
bAtt001
addikt
akkor csak layoutos megoldás van erre, nincs kifejezetten olyan h table mint a textview vagy hasonló igaz? tablelayouttal próbálkoztam de konzulensem azt mondta az nem az igazi erre a célra
hát mi lehet jobb táblázathoz mint a táblázatlayout 
-
Karma
félisten
Végülis ja, ez inkább valami megjelenítési dolognak tűnik, ahogy megfagy... Van valami TextWatcher ezen az EditTexten? A mérete, különösen a szélessége fix?
WonderCsabo: Használtad már a GridLayoutot? Nekem elég rossz tapasztalataim vannak vele élesben, pedig nagyon kéne egy ilyen jellegű layout...
Új hozzászólás Aktív témák
-
1900 - 1801
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
Mobilarena - 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 Tabletek, E-bookok Nyomtatók, szkennerek 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ésGAMEPOD - játék fórumok
PC játékok Konzol játékok MobiljátékokLOGOUT - lépj ki, lépj be!
LOGOUT reakciók Monologoszféra FototrendFÁ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
Hirdetés
- Ne késd le a határidőt! (Secure Boot 2026)
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Linux haladóknak
- Kamionok, fuvarozás, logisztika topik
- Megújult mobilos felület, fórumos ráncfelvarrás a PROHARDVER! lapcsaládon
- TCL LCD és LED TV-k
- BMW topik
- Milyen billentyűzetet vegyek?
- Crimson Desert
- Brutálisan drága lehet a Poco F9 Ultra
- További aktív témák...
- Eladó Apple iPhone 12 Pro Max 512GB (Graphite) - Karcmentes, újszerű állapot
- ASUS Vivobook X1704VA Intel Core 5 120U 16GB RAM 512GB SSD ÚJ ÁLLAPOT GARANCIA 2029-IG!
- Lenovo ThinkPad E14 Gen 5 13.gen FHD+ FÓLIÁS TÖRÉSGARANCIÁVAL!
- Lenovo ThinkPad T14s Gen 3 Ryzen 5 PRO 6650u Ultravékony, üzleti prémium! Garancia 2027.05.
- Erős, !GARANCIÁLIS! Acer Nitro 16 AI gamer laptop! -Ryzen AI 9 365, RTX 5070 8gb, 32gb DDR5, 1tb SSD
- AKCIÓ! Motorola Edge 60 Pro 5G 512GB okostelefon garanciával hibátlan működéssel
- AKCIÓ! MSI Cyborg 15 A12VF FHD GAMER notebook - i5 12450H 16GB DDR5 512GB SSD RTX 4060 8GB
- BESZÁMÍTÁS! Akár részletfizetés 0% THM ÚJ AMD RYZEN AM4 processzorok 3 év garanciával 27% áfaval
- Apple Mac mini M1 2020 - 16GB/256GB SSD - Erősebb verzió! - Szép/Megkímélt állapotban
- Corsair iCUE ELITE CPU Cooler LCD Display Upgrade Kit
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest



)

Köszönöm azért!




