Hirdetés
Új hozzászólás Aktív témák
-
shinodas
tag
Illetve még amit akartam, hogy erre:
public class Discover {
IntentFilter discoveryFilter = new IntentFilter(BluetoothAdapter.ACTION_DISCOVERY_FINISHED);
registerReceiver(_dicoveryReceiver, discoveryFilter);
IntentFilter foundFilter = new IntentFilter(BluetoothDevice.ACTION_FOUND);
registerReceiver(_foundReceiver, foundFilter);...
}
mi a csudáért húzza alá nekem a registerReceiver(_dicoveryReceiver, discoveryFilter); és registerReceiver(_foundReceiver, foundFilter); sorokat? A _dicoveryReceiver, és a _foundReceiver fgv-nyek meg vannak alattuk írva pedig.
-
shinodas
tag
Sziasztok!
Kiszeretném írni egy egyszerű stringbe a bluetooth státuszát. Hova kellene tennem, vagy meghívnom ezt a függvényt, hogy folyamatosan fusson le, és változásnál az oda tartozó stringet írja ki? Ugyanis csak a program indításnál fut le így.
public void BT_stat_Check(){
TextView t = new TextView(this);
t = (TextView)findViewById(R.id.BtStat);
if(bluetooth.isEnabled()){
//kiírom a bluetooth adatait
String mydeviceaddress = bluetooth.getAddress();
String mydevicename = bluetooth.getName();
status = mydevicename + " : " + mydeviceaddress;
t.setText(status); // kirakom a képernyőre a státuszt
}
else{
status = "Bluetooth is disabled.";
t.setText(status);
}
} -
Konair
csendes tag
válasz
SektorFlop
#693
üzenetére
http://www.cypressnorth.com/blog/mobile-application-development/android-studio-not-working-in-windows-7-or-8-fixed/
-
SektorFlop
aktív tag
válasz
WonderCSabo
#689
üzenetére
Nekem nem indul el

-
SektorFlop
aktív tag
válasz
WonderCSabo
#685
üzenetére
Kipróbálom én is.
-
thon73
tag
A kérdésem második felével kapcsolatban - vagyis, hogy mi történik, amikor a telefon elalszik - is érdekes viselkedést találtam:
Elalváskor dob egy onPause-onResume-onPause hármast, ébredéskor uez. visszafelé: -onResume-onPause-onResume.
A tesztet az Eclipse által létrehozott alapprogrammal (sehol egy fragment!) is megcsináltam, eredmény uez.
Tudja valaki, hogy ennek mi az értelme és magyarázata?(((Természetesen elfogadom, hogy minek kell izgasson ez az egész - ha egyszer működik. Csak a személyes gondom az volt, hogy elalváskor a rendszer a második onPause után valamiért belenyúl egy, az onPause-ban már lezárt adatbázisba. Ezt csak úgy tudtam kikerülni, hogy átpakoltam az egészet az onResume-onPause cikluson kívülre, így működik. Ami érdekes, hogy a hiba kizárólag elalváskor, és a második onPause után jelenik meg.)))
-
thon73
tag
válasz
SektorFlop
#684
üzenetére
Köszi!
-
fatal`
titán
válasz
WonderCSabo
#687
üzenetére
Vagy csak támogatja a pluginjeit? Mintha ilyesmi rémlene.
De az is lehet, hogy teljes képzavar
Amúgy mi a gondod evvel a (totál beta) cuccal? -
fatal`
titán
válasz
WonderCSabo
#685
üzenetére
Hali!
Még nem próbáltam, már megszoktam az eclipset. Hogy működik? Library projecteket kezeli? GIT support van?
Ha jól látom IntelliJ IDEA-ra épül, ami meg, ha jól tudom, akkor az Eclipsere, szóval olyan nagy varázslat ezekszerint nincs. Ellenben érdekelne, hogy mennyire herélték ki.

-
WonderCSabo
félisten
Sziasztok!
Láttátok, hogy megjelent az új fejlesztőkörnyezet, az Android Studio? Én kipróbáltam, sztem az Eclipse nagyon megveri...
-
thon73
tag
Hm. Úgy látom, a fragmentek kérdéskörével egyedül maradtam.
Én végül is változókban (is) tároltam el a visszakapott Fragmenteket. Így sikerült a számukat darabonként egyetlenre korlátozni. Ez az egy példány aztán hol bekerül egy View-be, hol kiveszem onnan. A kód működik, de hogy ez helyes megoldás-e, nem tudom. Gondoltam, azért esetleges későbbi olvasókkal ezt megosztom.Egy másik problémával kapcsolatban kérnék viszont jó tanácsot: Látszólag jól működik a program, tehát elfordításra is szabványosan leáll és újraindul. De ha az elfordítást kikapcsolt állapotban végzem el, akkor a program - hibaüzenet nélkül - leáll; pontosabban a Log-on jelentkezik egy le nem kezelt exception, amiről fogalmam sincs, hol ered. Az utolsó log-bejegyzés szerint az onPause lefutott. (minden visszahívást log-oltam) A hiba bekapcsoláskor jelenik meg, és ekkor már nem kapok debug üzeneteket.
A programot még tesztelem. A kérdés az, hol találhatok leírtást arról, mi (más) történik a programmal miközben a készülék stand-by-ba (és vissza) kapcsol? Azt gondolom, hogy egy onPause-onResume hívásnak kellene következnie, de erről nem találtam infot. Tud valaki esetleg ilyen jellegű forrást?
-
thon73
tag
Fragmentek körében - tud nekem segíteni valaki?

A kód hosszú, de ha kell elküldöm. A kérdések egyszerűbbek.
Ha egy Fragment objektumot létrehozok, az - már bizonyos - örökre megmarad.
Ráadásul, hiába adom ki a remove transactiont (és commit-ot is, persze), utána eltűnik, de az activity újraindulásakor visszalópódzik az elvileg üres View-ba.
A Tag és Id csak akkor él, amikor a Fragment be van rakva a View-ba.- Hogyan lehet ezt a létező Fragment-et (remove, commit után) fellelni? ((Az Activity felleli, mert indításkor visszapakolja! De én csak akkor tudom megtalálni, ha egy globális "változóban" tárolom.))
- vagy hogyan lehetne "destroy"-ra kényszeríteni?
- Tapasztalta-e már valaki a fentieket, ill. okozott-e ez problémát?
- Ti ezt hogyan csináljátok?A hiba akkor bukott ki, amikor egy amúgy jól működő(?) kód, minden fordításkor szaporítani kezdte a menu elemeket. További vizsgálódáskor találtam ezt, amit a doksi nemigen emleget. A neten a fentiekkel csak kérdés formájában találkoztam, választ nem találtam.
Előre is köszönöm, ha valaki fáradozik ezzel! -
pvt.peter
őstag
Sziasztok!
Nem teljesen idevág a kérdésem, de tudja vki azt, hogy egy IMEI azonosítószám hossza az milyen hosszú lehet?
-
thon73
tag
Kötözködés nélkül, és csak a teljesség kedvéért: single-tap esetén csak A_DOWN generálódik először, és csak mozdítás után A_MOVE. A konkrét példában ez nem látható (tehát igazad van), de ha az else-t kivesszük, akkor megfigyelhető, mert közeli érintésre (és nem mozgásra) is mozdul a joy.
A megelőző példában viszont először én sem tettem be az A_DOWN-t, és érintésre nem jelentek meg a karikák, csak mozgatásra. -
fatal`
titán
Komplett adb támogatás van (annyi, hogy nem mindig automata, úgyhogy van, hogy kell egy adb connect localhost, hogy lássa az eclipse), úgyhogy gondolom ki. Ha máshogy nem, akkor rootolod

Mondjuk nem tudsz vele mindent tesztelni, nem testreszabható, mint az AVD, igazából felhasználóknak van, nem fejlesztőknek. Én azért kezdtem el használni, mert gyors, nem kell fél órát várnom egy-egy buildnél mire rámásolja az apk-t.
-
Karma
félisten
És megy is a HAXM? Azaz emulátor indításkor írja az AVD Manager, hogy HAX is working and emulator runs in fast virt mode? Mert enélkül nem ér semmit

Nekem egy 4.2.2-es image hidegindítása tíz másodperc jelenleg. Mondjuk elég erős a gépem is - de nagyságrendi eltérésnek nem szabadna lennie. Még a tabletemen is feléled húsz alatt.
-
fatal`
titán
A move alapból tartalmazza a downt (mivel hozzáérsz a kijelzőhöz / lenyomod az egeret, másképp nincs Move androidon) így az egész ág teljesen felesleges.
(#672) Sianis: Nem használom az emulátort csak app release előtti tesztre így a problémát nem tudom mi okozza, viszont, ha Intel CPU-d van és tud VT-t, akkor tedd fel a HAXM-et, sokkal gyorsabban indul és fut az emu.
-
Sianis
addikt
Azt tudjátok, hogy mitől lehet, hogy elmentek egy emulátort snapshotba, ha mondjuk még aznap használom és indítom akkor semmi baja. Ellenben 24 óra elteltével azt mondja, hogy nem ilyen configgal lett mentve a snapshot, szóval nem lehet onnan indítani. Nem nyúlok semmilyen beállításhoz mégis folyton rákényszerít a lassabb indításra, arról nem is beszélve, hogy a 4.0+ emulátorok általában olyan lassan indulnak, hogy első alkalommal az Eclipse nem is találja meg őket.
Sianis
-
thon73
tag
Módosítok: az elv jó, csak megfogni nehéz így. Ha viszont az "else"-t kivesszük (vagy opt. miatt lehet "if (joyid[n]!=-1)"), akkor értelmet kap a DOWN ág is. Uis. már érintésre arrébb tud ugrani.
API17-ben van egy hypot() függvény, ami a distance számítást leegyszerűsíti (nekem API10-ben még nem működik.)
MATEMATIKUSOK!
Mi a legegyszerűbb számítás ahhoz, hogy a kör - az érintéstől függően - a periméteren keringjen? Csak szögfüggvénnyel megoldható?
-
fatal`
titán
Egy apró kiegészítés:
switch (event.getActionMasked())
{
case MotionEvent.ACTION_DOWN:Itt, mivel nem csinálsz semmit az ACTION_DOWN ág felesleges. De ha mégis bent akarod/akarjátok hagyni, akkor egy break nem árt utána, mert így action_down esetén is lefut az utána lévő ág.
-
thon73
tag
válasz
shinodas
#661
üzenetére
Itt egy lehetséges megoldás. API10 és AIDE alatt készült, de elvileg bármiben működik. 800x480 pixeles képernyőm van, de persze a méretek a képnek megfelelően változtathatóak. Az egyszerűség kedvéért beágyazott View-t használtam, ill. nem ellenőrzi a View beállításait, ez végleges megoldásnál ildomos!
A kód sok helyen nincs optimalizálva, inkább jól érthetőt akartam írni. ((Pl. én nem is tennék két joysticket egy view-ba, vagy ha igen, akkor két külön objektumként stb.))public class JoystickActivity extends Activity
{
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(new Felulet(this));
}
public class Felulet extends View
{
private float[] origox = {200f, 600f};
private float[] origoy = {180f, 220f};
private float joyx[] = {origox[0], origox[1]};
private float joyy[] = {origoy[0], origoy[1]};
private float joyarea = 150f;
private float joyrad = 40f;
private int joyid[] = {-1, -1};
private Paint area;
private Paint rad;
public Felulet(Context context)
{
this(context, null, 0);
}
public Felulet(Context context, AttributeSet attrs)
{
this(context, attrs, 0);
}
public Felulet(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
area=new Paint();
area.setStyle(Paint.Style.STROKE);
area.setColor(Color.RED);
area.setStrokeWidth(5f);
rad=new Paint();
rad.setStyle(Paint.Style.FILL_AND_STROKE);
rad.setColor(Color.GREEN);
rad.setStrokeWidth(5f);
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
switch (event.getActionMasked())
{
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
int pointerCount = event.getPointerCount();
for (int n=0; n<2; n++)
{
if (joyid[n] == -1)
{
for (int cnt = 0; cnt < pointerCount; cnt++)
{
if (distance(joyx[n], joyy[n], event.getX(cnt), event.getY(cnt)) < joyrad)
{
joyid[n] = event.getPointerId(cnt);
break;
}
}
}
else
{
boolean id_flag = false;
for (int cnt = 0; cnt < pointerCount; cnt++)
{
if (joyid[n] == event.getPointerId(cnt))
{
if (distance(origox[n], origoy[n], event.getX(cnt), event.getY(cnt)) < joyarea - joyrad)
{
joyx[n] = event.getX(cnt);
joyy[n] = event.getY(cnt);
this.invalidate();
}
else
{
// aránypárral v. szögfüggvénnyel mozgatható a kerületen
}
id_flag=true;
break;
}
}
if (!id_flag)
reset_joy(n);
}
}
break;
case MotionEvent.ACTION_UP:
reset_joy(0);
reset_joy(1);
break;
}
return true;
}
protected void reset_joy(int n)
{
joyid[n] = -1;
joyx[n] = origox[n];
joyy[n] = origoy[n];
this.invalidate();
}
protected float distance(float x1, float y1, float x2, float y2)
{
float x = x1 - x2;
float y = y1 - y2;
return FloatMath.sqrt(x * x + y * y);
}
@Override
protected void onDraw(Canvas canvas)
{
for (int n=0; n<2; n++)
{
canvas.drawCircle (origox[n], origoy[n], joyarea, area);
canvas.drawCircle (joyx[n], joyy[n], joyrad, rad);
}
}
}
}Az elv: a két index a két külön joysticket jelenti. Origox/y a közepe a két joysticknek, Joyx/y pedig az aktuális helyzete. Joyrad (kiskör) karikán belül lehet csak "megfogni" a joysticket, Joyarea (nagykör) sugaron kívül nem tud mozogni. A távolságot Pithagorasz tétellel számolja, ez nem a legjobb helyen van az osztályon belül.
A JoyId a legfontosabb: ha -1, akkor nincs érintés hozzárendelve (középen van a joystick). Ha egy érintés belelép a kiskörbe, akkor annak id-je lesz a JoyId és azt követi. A nagykör szélén megáll, de az érintéshez továbbra is ragaszkodik. Nem akartam bonyolítani, de az igazi az lenne, ha a köríven menne az ujjad után. (a megjegyzés helyén kezelhető ez)
Ha az Id eltűnik (ezt ellenőrzi a flag), vagyis azt az ujjad felemelted, akkor középre áll. Szintúgy akkor is, ha ACTION_UP lesz, vagyis minden ujj elhagyta a képet. Ilyenkor lehetne ütemadóval visszaúsztatni, de kis méretben az ugrás sem zavaró.
Ilyenre gondoltál? Remélem segít továbblépni, a lényeg úgyis az ID kezelés volt. Ha valami nem tiszta, szívesen segítek. -
thon73
tag
válasz
shinodas
#657
üzenetére
Pedig az nem nehéz, nekem inkább az időzítéssel gyűlt meg a bajom.
1. KÉT View esetén csak az egy érintéssel kell foglalkozni sztem.
2. KÖZÖS View-ban végig kell menni az összes érintés tömbjén, mint a fenti példában.
Én ellenőrizném a koordináták alapján, melyik ID koordinátája van a joystick körének területén.
A. lehetőség: Továbbra is végigmegyek az indexen, de ennek az ID-nek az alapján mozgatom a kört. Ha az ID eltűnt, akkor ez az érintés befejeződött. Kell keresnem egy újat, v. visszavinni középre a joysticket, és utána keresni.
B. lehetőség: ugyanúgy végigmegyek a tömbön, de nem foglalkozom az ID-vel, hanem ami megfelelően közel van a középpontjához, oda mozdítom a kört. Ha nincs ilyen, mehet vissza középre.Az egész kulcsa az, hogy amíg egy ponton is érinted a képet, az ID megmarad. Ha elengedted a képet, akkor teljesen új érintés kezdődik, új Idkkel. Ezért kell az elején a megf. érintést mindenképp a koord. alapján kiválasztani.
-
thon73
tag
válasz
shinodas
#655
üzenetére
Én lényegesen leegyszerűsíteném ezt a problémát. Készítenék egy speciális View-t, mely egy ilyen joystick-et mutat be. Ebből aztán kettő is elhelyezhető egy layoutban.
A joystick mindig középen áll. Ha megérintem valahol máshol a View-t (vagy a View belül egy kört is kijelölhetek erre), akkor a joystick/kör oda ugrik (és persze ezt az értéket kérdezhetem le). Ha elengedem, akkor visszaugrik középre.
Ez persze nem túl szép, mert a joysticknem ugrál, hanem szépen mozog. Ennek a szimulálására viszont el kell indítani a háttérszálon egy "ütem-adót", ami időnként jelzi a View-nak, hogy mozdítania kell egy kicsit a joystickon. Így úszhat a kör az érintés felé, vagy elengedésnél vissza középre. Az ütemadó nélkül nincs olyan esemény, ami a kör mozgását kiváltaná.
A másik lehetőség, hogy a kör csak akkor mozdul, ha az érintés a középpontjához megfelelően közel következett be. Ilyenkor nem kell ütem-adó, hiszen az "ugrás" megfelelően kicsi. Ez azt is szimulálja, hogy a joystick nem ugrik magától a kezembe, ha nem a tetejét fogom meg. Persze a "visszaúthoz" elengedés után még mindig szükséges az előző módszer.
((Nem dolgoztam még két külön View-val az érintéssel kapcsolatban, de nagy a gyanúm, hogy nem kell törődni, csak az elsődleges érintéssel, mert mindkettő azt kapja meg. Ezt ki kellene próbálnom.))
Ez persze csak az én ötletem, lehet, hogy más tud ennél jobbat is. Külön-külön már minden részét elkészítettem a folyamatnak, csak nem ilyen összefüggésben - ennek alapján szerintem azért el lehet vele játszani, mire összeáll, de megvalósítható. ((Ha nem sürgős, a konkrét megvalósításban is szívesen segítek, a grafika és az időzítés most nálam is pont napirenden van.)) -
thon73
tag
válasz
shinodas
#653
üzenetére
?? Ez azt jelenti, hogy a körök nem mozdíthatóak teljesen szabadon? Vagyis pl. nem keresztezhetik egymást? Mindkettőnek van egy saját területe? Mert akkor jobb lenne egy külön View-t alkotni egy körrel a közepén, amiben a kör - mint egy thumbstick mozgatható. Ha hozzáérsz valahol, akkor arra elmozdul a kör. Ha elengeded, akkor visszaúszik középre. Ez lenne a terv?
-
thon73
tag
Nem tudok elszakadni a felszaporodó fragmentek problémájától...
Sehol nem írják ezt a megoldást, pedig nekem minden bajomat megoldotta. Sőt! Portrait-ból Landscape-be való visszafordításnál a másodlagos Fragmentben lévő adatok is megmaradtak! (Lévén ugyanaz a Fragment jelent meg máshol)layout/main.xml
<FrameLayout
android:id="@+id/portrait"
... >
<FrameLayout
android:id="@+id/list_frame"
... />
<FrameLayout
android:id="@+id/edit_frame"
... />
</FrameLayout>layout-land/main.xml
<LinearLayout
android:id="@+id/landscape"
... >
<FrameLayout
android:id="@+id/list_frame"
... />
<FrameLayout
android:id="@+id/edit_frame"
... />
</LinearLayout>Vagyis: ugyanazok az id-k mind landscape,mind portrait módban. Természetesen portrait módban a két frame "átfedi" egymást, tehát a program logikájának kell megoldani, hogy hol az EDIT, hol a LIST fragment legyen felcsatolva a saját (átfedő) Frame-jébe.
Az egész program (ill. ez a része) csak KÉT Fragment Példányt tartalmaz. És egy Activity van (ez volt a cél)Szól ez ellen a megvalósítás ellen vmilyen. érv? Nekem működőképesnek tűnik. Mivel a két layout egyszerre nem valósul meg, az id-k sem akadnak össze. Mindkét frame mindig a "saját" frame-jébe lesz bekapcsolva, mindig a saját tag-jével jelölve. Nincs változás, nincs hibaüzenet. Mivel nem a frame-ek kapcsolnak ki/be, az animációk ugyanúgy látszanak.
Mégsem olvastam ilyen megoldást sehol. Van ezzel vmi baj szerintetek?
Tényleg senkinek nem volt még nehézsége a fragmentek megvalósításával? Tényleg senkinél nem szaporodtak még fel az elforgatások során?
-
thon73
tag
válasz
shinodas
#649
üzenetére
Ez csak egy bemutató-példa. Mi lenne a cél? Ha két fix alakzatot akarsz mozgatni, akkor azok koordinátáit kell külön tárolni, és egy-egy érintésnél legfeljebb a megfelelő ID-jű érintéshez rendelni.
Egy touchEvent az tényleg egyetlen érintés(sorozatot) ír le. Az ID arra szolgál, hogy EZEN BELÜL egy-egy ujjat kövessen akkor is, ha a többit felemeled (az index uis. csak felsorolja az aktuálisan hozzáérő pontokat, de a sorszám itt változhat.) Az már a Te programod feladata, hogy az alakzatok (és mozgásuk) valamint az érintések közötti logikát megalkossa. A bemutató csak minden mozdulatnál új alakzatokat rajzol az érintési pontokra, nem "gondoskodik" az alakzatokról, ezért is tűnnek el. -
kukinyo
addikt
Sziasztok
Nem tudom hogy kérdésem jó helyen teszem e fel, remélem igen
Előszeretettel használom blade-en a CM7.2 android verzióját, amiben ugye nincs navibar funkció.
Ezt igyekszem úgy pótolni hogy a framework-res.apk-t kibontottam és a values\bools.xml-ben bekapcsoltam a statusbar soft button funkcióját.
Ez nagyon is megfelelne ha nem lennének annyira kicsik a gombok.
Megtaláltam azt hogy a statusbar magasságát hol lehet állítani, arra is rájöttem hogy a statusbar ikonjait hol tudom méretezni, viszont a soft button mérete ezekkel a beállításokkal nem változik.
Hol tudnám megnövelni a gombok méretét? -
shinodas
tag
válasz
shinodas
#648
üzenetére
Az általad mutatott példában, mikor van a ciklus, ott hogyan tudom elkülöníteni a két pointerem értékét?
case MotionEvent.ACTION_MOVE:
pointerCount = event.getPointerCount();
for(cnt = 0; cnt<pointerCount && cnt<MAX_POINTER;cnt++)
{
posx[cnt] = event.getX(cnt);
posy[cnt] = event.getY(cnt);
id[cnt] = event.getPointerId(cnt);
mPosX = posx[cnt];
mPosY = posy[cnt];
}
this.invalidate();
break;Itt szeretnék mPosX2, és mPosY2-nek is értéket adni, de nem tudom, azt a pointert, hogyan kezeljem le.
-
thon73
tag
válasz
shinodas
#643
üzenetére
Két fontos dologra érdemes figyelni:
1. az onDraw minden invalidate után üres lappal indul. Ha meg akarod tartani az alakzatokat, akkor tárolni kell a koordinátáikat, és mindenannyiszor újrarajzolni őket. A gond az alakzatok "újra megfogásakor" jelentkezik: uis. honnét tudod, hogy egy már letett alakzatot kell mozgatnod, vagy egy újat? Legjobb lenne talán ellenőrizni, hogy az érintés vmelyik alakzat közelében van-e, és akkor azt hozzárendelni. De mindenképpen tárolni kell az adatokat.
2. nem az index számít, hanem az ID. Ez utóbbi ugyanis nem változik egy multitouch érintés során. Csak éppen nem sorban van, hanem végig kell nézni az indexeket és úgy kikeresni.
((És akkor még ott van a "historical" pontok sokasága, amivel nem foglalkoztunk.)) -
thon73
tag
Bocs, csak úgy értettem, hogy volt-e már valakinek ehhez hasonló tapasztalata. Neki is láttam egy egyszerűsített tesztkódot írni (az enyém meglehetősen hosszú).
Ez a teszt fragment, egyetlen metódus:public class TestFragment extends Fragment
{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
TextView tv = new TextView(getActivity());
tv.setText("Hello világ!");
return tv;
}
}És a lényeg: az activity:
public class MainActivity extends FragmentActivity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
FrameLayout fl = new FrameLayout(this );
fl.setId(1234);
setContentView(fl);
}
@Override
public void onResumeFragments()
{
super.onResumeFragments();
FragmentManager fragmentManager = getSupportFragmentManager();
TestFragment test = (TestFragment)fragmentManager.findFragmentByTag("TEST");
if (test == null)
{
test = new TestFragment();
}
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(1234, test, "TEST");
fragmentTransaction.commit();
}
@Override
public void onPause()
{
super.onPause();
FragmentManager fragmentManager = getSupportFragmentManager();
TestFragment test = (TestFragment)fragmentManager.findFragmentByTag("TEST");
if (test!=null)
{
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
// fragmentTransaction.detach(test);
fragmentTransaction.remove(test);
fragmentTransaction.commit();
}
}
}((Igazából ezeken a kódokon kívül az eclipse saját indítókódján semmit sem kell változtatni, mert a View-k dinamikusan jönnek létre. A rengeteg Log-ot kitöröltem, de akár minden metódus figyelhető a LogCat-ben.))
A LÉNYEG:
Sztem. az indítás során az onResumeFragments-ben hozzáadjuk a "TEST" fragmentet,
leállításnál az onPause-ben eldobjuk. (Ha akarjuk, akkor detach is lehet.)A REMOVE UTÁN SZERINTEM A FRAGMENTNEK EL KELLENE PUSZTULNIA A DESTROY FOLYAMÁN!
Ehhez képest újraindítás után hibaüzenet:
java.lang.RuntimeException: Unable to resume activity {.fragmenttest.MainActivity}: java.lang.IllegalStateException: Fragment already added: TestFragment{40525cf0 #0 id=0x4d2 TEST}Vagyis az eldobott Fragmentünk "visszajött".
Ugyanez történik ID és Tag alapú keresésnél is: az eldobott Fragment megjelenik
Ha két (landscape és portrait) layout között váltogatok, akkor még hibaüzenet sem jön, csak a Fragmentek sokasodnak.
((Világos, ha a remove átkerül a legelejére, akkor nem lesz hiba, de a Fragment megmarad))SZERINTEM:
A Fragment-ek NEM objektumként működnek, hanem sokkal jobban hasonlítanak az Activity-ra. Vagyis: létrehozás után (ez történik objektumok módjára), mindvégig megmaradnak, csak ide-oda kapcsolgathatjuk őket.
Az onRetain...-nál annyi különbség lehet, hogy ott érinetetlenül maradnak meg, itt meg a View újra készül.Ez azért gond, mert ha egyszer egy Fragmentet valamelyik View-ba bekapcsoltunk, akkor ragaszkodik a saját View-jához, más View ID esetén hibát dob.
Képzeljünk el egy szituációt: bal oldalon a lista, jobbra az egyes elemek, külön fragmentben. Ha ezt EGY activityvel oldjuk meg, akkor NÉGY fragmentet kell kezelnünk (2 landscape, 2 külön portrait módban) VAGY ha ugyanazt az Id-t adjuk meg a két külön layout-ban lévő fragmentet fogadó View-nak, akkor csak KÉT fragmentet kell kezelnünk.
Tudom, hogy a KÉT ACTIVITY-vel való kezelést preferálják, de 1. ettől nem tudom meg, miért nem tűnnek el a fragmentek. ((2. Az activity-k közötti kommunikáció miatt ez a megoldás most nem az igazi nekem (de ez a teszt szempontjából lényegtelen))Bocs, ha nem teljesen érthető ez, igyekeztem nagyon rövidíteni a kódot. De már csak azért is hajt a kíváncsiság, hogy ez miként műxik.
-
Sianis
addikt
Eclipseben tegyél oda egy breakpointot és nézd meg debug mode-ban. Meg fog ott állni a futás és meg tudod nézni, hogy tényleg null-e a context.
Vagy a task konstruktorának adnám át a contextet és menteném a taskon belül is vagy az executeon keresztül a doinbackgroundnak.
Sianis
-
Konair
csendes tag
Sziasztok!
Van egy BroadcastReceiver-em, és abban az onReceive elindít egy AsyncTask-ot. doInBackground-ban pedig lekérem a GPS koordinátákat.
Ám itt kapok egy java.lang.NullPointerException-t a 46. sorban, ahol ez szerepel:
locationManager = (LocationManager) mContext.getSystemService(Context.LOCATION_SERVICE);Ez a lekérés működött addig, míg be nem raktam AsyncTask-ba, így arra tippelek, hogy a context-et nem adom át helyesen.
Hogyan kellene ezt jól átadni?
Valaki tudna egy rendes leírást mutatni a contextről? -
Sianis
addikt
Sajnos, most nem tudok nagyon beleásni a témába, de annyit had tegyek hozzá, hogy nem hiszem, hogy a supportban más lenne, mint az új rendszerekben. A support tudtommal ugyanazt a kódot tartalmazza, mint ami a 4.0+ rendszerek megkaptak. Gyakorlatilag egy backport, annyi különbséggel szerintem, hogy SDK számtól függően vagy a support osztályokra, vagy a rendszer osztályaira hivatkozik.
MOD: Valami kódot nem akarsz esetleg feltölteni? Nem kell bele semmi extra logika, csak lehet, hogy rátekintve jobban kibukik a baki.
Sianis
-
thon73
tag
Amíg a válaszokra vártam, tovább nyomoztam:
Úgy tűnik, ha egyszer egy Fragment példányt létrehoztunk, akkor az örökkön-örökké létezni fog a FragmentManager-ben - pontosabban addíg, amíg a program VÉGLEG be nem fejeződik (tehát nem konfig vált. miatt.) Ez meglehetősen furcsa működés, mert akkor mire szolgál a setRetainInstance?
Érdekes, jobban elolvasva a doksi is ezt mondja: a detach hasonló ahhoz, mintha a BackStack-en lenne a fragment, csak ilyenkor a FragmentManager tárolja.
Support package-ot használok API8 minimum mellett API17-tel fordítva.
Meg tudná ezt valaki erősíteni v. cáfolni? Lehet, h. ez egy hiba? Vagy a supporttal van valami gond? -
thon73
tag
-
thon73
tag
válasz
shinodas
#636
üzenetére
Pl. így? Az ID-t is kiírja.
private final int MAX_POINTER=10;
private float[] posx=new float[MAX_POINTER];
private float[] posy=new float[MAX_POINTER];
private int[] id=new int[MAX_POINTER];
private int pointerCount = 0;
@Override
public boolean onTouchEvent(MotionEvent event)
{
switch (event.getActionMasked())
{
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
pointerCount = event.getPointerCount();
for (int cnt = 0; cnt < pointerCount && cnt <MAX_POINTER; cnt++)
{
posx[cnt] = event.getX(cnt);
posy[cnt] = event.getY(cnt);
id[cnt] = event.getPointerId(cnt);
}
this.invalidate();
break;
}
return true;
}
@Override
protected void onDraw(Canvas canvas)
{
for (int cnt = 0; cnt < pointerCount; cnt++)
{
canvas.drawText(Integer.toString(cnt) + ", [" + Integer.toString(id[cnt]) + "]", posx[cnt], posy[cnt]-80f, text);
canvas.drawCircle (posx[cnt], posy[cnt], 30f, paint);
}
}
}
}Nem vagyok benne biztos, hogy a getAction() action_POINTER_up kódot is visszaad. Ahhoz sztem. getActionMasked() lekérdezés kellene. De lehet, h. rosszul tudom. A fenti megoldás viszont akár tíz ujjal is működik. (Már ha a hardver tudja...)
-
shinodas
tag
Multi touch-al próbálkozok, és az lenne a kérdésem, hogyan tudnám egyszerre mozgatni a két kört? Mert csak az egyik elem követi az ujjam, a másik pedig a mozgatott objektumot követi, ha a másik ujjammal is megérintem a képernyőt.

-
thon73
tag
Igen, a menü létrehozása tökéletesen megy. A menüt a fragmenten belül hoztam létre, és szeretném is, ha ott maradhatna. A gond akkor kezdődik, ha egy fragment osztály több példánnyal kapcsolódik be, mert akkor minden példány hozzáadja a saját menüjét. Ez idáig logikus is, de ha remove v. replece-szel elveszem a fragment-példányt (és persze a back-stack-ben sincs), a menüje akkor is megmarad. És - noha nincs már hivatkozás elvileg sehol erre a példányra - a menü az activity újraindítása után is megmarad! Minden indításnál új fragment-példányt adtam egy FrameLayout-ba (az előzőt elvileg eldobtam) és több száz bejegyzésem lett a menüben!
Tudom, vissza lehet szerezni a Fragmentet, a gond csak az, hogy ha egyszer valahova becsatoltam, ugyanazt a példányt (külön időpontban sem!) nem lehet másik Layout-ba becsatolni. Ezért kellene két példány egy fragmentből (külön elrendezésben tehát külön időben) de EGY menüvel egyszerre.
Egyetlen ötletem van: az activity onprepareoptionsmenu-jében ellenőrizni, hogy adott taggal van-e élő fragment, és eszerint betenni a menüt. De ha lehet, a fragmenten BELÜL szeretném a menükérdést megoldani. Csak nem megy…A BackStack kérdés egyszerűbb: az nekem is prímán működik. De ha nincs szükségem az utolsó elmentett transaction példányra, azt hogy tudom "visszajátszás" nélkül eldobni? Vagyis csak levenni a stackról, de nem végrehajtani.
Köszönöm!
-
kocska86
csendes tag
Sziasztok!
Előre leszögezném, hogy kezdő vagyok az android programozás terén...
A telómhoz szeretnék csinál egy usb háttértár programot. A programom már az alap funkcióját ellátja.Viszont, ha PC-re csatlakoztatom, és valamit írok, vagy valamit törlök az SD kártyáról, akkor az a telefonra való visszacsatolás után nem látszik.
Ha látni akarom az SD kártya tartalmának a változását, akkor újra kell indítanom a telefon.
A kérdés tehát az lenne...hogy milyen módon tudnám az SD kártya teljes tartalmát újra olvastatni?
Próbálkoztam a MediaScannerConnectionClient-el, de sikertelenül.
A kátrya tartalmát ugyan beolvassa, de változásokat nem nem jeleníti meg, vagy nem is észleli.
Gondolom valami hasonló metódus kellene, mint ami bootoláskor lefut, de mivel nem tudom, hogy pontosan mi is az, ezért nem tudtam elindulni ezen a vonalon.
Örülnék, ha valaki tudna útmutatást adni!Előre is köszönöm!
-
Sianis
addikt
Fragmentnél adtál meg setHasOptionsMenu(true)-t? Vagy honnan vezérled a menü létrehozását? Nekem így eddig nem volt vele gondom, minden fragment magának definiálja a menüjét és a backstackes dolgokkal is szépen együttműködik a cserélődés. Igaz én AndroidAnnotations-t használok.
Sianis
-
thon73
tag
A mérgelődésen kívül két konkrét kérdésem lenne Fragment-ekkel kapcsolatban:
1. A Fragment által létrehozott Options-Menu a Fragment eltávolítása után is megmarad. Ha új Fragment példányt csatolok be, akkor az előző (eltávolított) példány Options-menu-je is, és az új is látszik. Ezt (a régi menüt) mivel tudom kitörölni a Fragment eltávolításakor? (Az előző Fragment már "eltűnt", vagy legalábbis tag keresésével nem találja meg. De a menu maradt.)
Az invalidateOptionsMenu nem működik, vagy nem tudom, hol kellene kiadni. A menu.clear() (pl. a prepare részben) viszont mindent kitöröl, és egyáltalán nem látszik a menü.2. Ha elmentettem egy transaction-t a backstack-re, és nem arrafelé megyek vissza (mert pl. elfordítottam a telo-t), akkor hogyan tudom azt onnan eltüntetni? ((A BackStack-on lévő elemek száma minden elfordításkor növekszik, hiába lesz közben "Destroy". Ez nem is lenne baj, csak a visszafordításkor az alap Fragment-ről szeretnék indulni, miközben a "második" Fragment (vagyis a tranzakció) el van mentve a BackStack-re.))
API17-tel fordítottam, de API8 minimumra, tehát support package-t használtam. Elvileg ez nem lehetne baj. Előre is köszönöm, ha valakinek van ezzel tapasztalata.
-
thon73
tag
Elkezdtem haladni a korral, megismerkedtem a Fragment-kezeléssel.
DE!
Az normális, hogy az Android Developers honlapon lévő példakódok hibásak??
Namármost, ahogy végiggondoltam, úgy viszont működik (és a hibás elgondolást is megtaláltam a példakódban).
Van viszont erről (Fragment) valahol használható leírás, hogy mi a helyes felhasználás módja, vagy mindenki kitalálja magának oszt lesz ami lesz??
Vagy mi van ilyenkor, amikor a "HIVATALOS" dokumentáció hülyeséggel példálózik? -
shinodas
tag
Illetve azt megtudnátok mondani, hogy Surfaceview-ra hogyan lehet egy textViewt aplákálni?

-
shinodas
tag
Helyesbítenék: Debug módban egy ideig fut jól, de ha rendesen elindítom az appot, marad az FC.
A console ezt írja:
[2013-05-05 14:20:32 - Surface2] ------------------------------
[2013-05-05 14:20:32 - Surface2] Android Launch!
[2013-05-05 14:20:32 - Surface2] adb is running normally.
[2013-05-05 14:20:32 - Surface2] Performing com.example.surface2.MainActivity activity launch
[2013-05-05 14:20:32 - Surface2] Automatic Target Mode: Unable to detect device compatibility. Please select a target device.
[2013-05-05 14:20:35 - Surface2] Application already deployed. No need to reinstall.
[2013-05-05 14:20:35 - Surface2] Starting activity com.example.surface2.MainActivity on device skate
[2013-05-05 14:20:36 - Surface2] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.surface2/.MainActivity }
[2013-05-05 14:20:36 - Surface2] ActivityManager: Warning: Activity not started, its current task has been brought to the frontA logCat ezt:
05-05 14:23:52.830: W/ActivityManager(227): Activity destroy timeout for HistoryRecord{409006b8 com.example.surface2/.MainActivity}
05-05 14:23:52.870: D/AndroidRuntime(8898): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
05-05 14:23:52.870: I/AndroidRuntime(8898): Heap size: -Xmx48m
05-05 14:23:52.870: D/AndroidRuntime(8898): CheckJNI is OFF
05-05 14:23:53.130: D/AndroidRuntime(8898): Calling main entry com.android.commands.pm.Pm
05-05 14:23:53.140: D/AndroidRuntime(8898): Shutting down VM
05-05 14:23:53.150: D/dalvikvm(8898): GC_CONCURRENT freed 103K, 70% free 308K/1024K, external 0K/0K, paused 1ms+1ms
05-05 14:23:53.150: I/AndroidRuntime(8898): NOTE: attach of thread 'Binder Thread #3' failed
05-05 14:23:53.150: D/jdwp(8898): adbd disconnected
05-05 14:23:53.150: D/jdwp(8898): Got wake-up signal, bailing out of select
05-05 14:23:53.150: D/dalvikvm(8898): Debugger has detached; object registry had 1 entries
05-05 14:23:53.360: D/AndroidRuntime(8908): >>>>>> AndroidRuntime START com.android.internal.os.RuntimeInit <<<<<<
05-05 14:23:53.360: I/AndroidRuntime(8908): Heap size: -Xmx48m
05-05 14:23:53.360: D/AndroidRuntime(8908): CheckJNI is OFF
05-05 14:23:53.620: D/AndroidRuntime(8908): Calling main entry com.android.commands.am.Am
05-05 14:23:53.630: I/ActivityManager(227): Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.example.surface2/.MainActivity } from pid 8908
05-05 14:23:53.670: D/AndroidRuntime(8908): Shutting down VM
05-05 14:23:53.690: I/AndroidRuntime(8908): NOTE: attach of thread 'Binder Thread #3' failed
05-05 14:23:53.690: D/dalvikvm(8908): GC_CONCURRENT freed 103K, 69% free 325K/1024K, external 0K/0K, paused 0ms+1ms
05-05 14:23:53.700: D/jdwp(8908): adbd disconnected
05-05 14:23:53.700: D/jdwp(8908): Got wake-up signal, bailing out of select
05-05 14:23:53.700: D/dalvikvm(8908): Debugger has detached; object registry had 1 entries
05-05 14:23:53.700: W/WindowManager(227): Rebuild removed 5 windows but added 3
05-05 14:23:53.780: D/dalvikvm(7054): GC_EXPLICIT freed 21K, 50% free 2701K/5379K, external 0K/0K, paused 432ms
05-05 14:23:58.320: I/Process(8882): Sending signal. PID: 8882 SIG: 9
05-05 14:23:58.330: E/InputDispatcher(227): channel '40a14228 com.example.surface2/com.example.surface2.MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x8
05-05 14:23:58.330: E/InputDispatcher(227): channel '40a14228 com.example.surface2/com.example.surface2.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
05-05 14:23:58.330: I/ActivityManager(227): Process com.example.surface2 (pid 8882) has died.
05-05 14:23:58.350: I/WindowManager(227): WIN DEATH: Window{40a14228 com.example.surface2/com.example.surface2.MainActivity paused=false}
05-05 14:23:58.350: I/WindowManager(227): WIN DEATH: Window{4099a168 SurfaceView paused=false}
05-05 14:23:58.390: W/InputManagerService(227): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@405ab318 -
shinodas
tag
Sziasztok srácok!
Van egy látszólag jó példa kódom, aminek elvileg kellene is futni, de minden alkalommal, ha a telefonon kipróbálom FC-t dob. Nem igazán van még tapasztalatom androiddal, ezért kérdezlek titeket, hogy mi lehet a gond? -
BigBlackDog
veterán
Sziasztok!
Kis segítséget szeretnék kérni. Google Play Szolgáltatásokat szeretném telepíteni, mivel az egyik alkalmazáshoz kellene (SupportMapFragment-ből származtatott saját osztályhoz). Playből sikeresen le is töltődik, de telepítésnél kapok egy hibaüzenetet; "Összeegyeztethetetlen más, ugyanazon megosztott felhasználói azonosítót használó alkamazással/alkalmazásokkal". Próbáltam más eszközről áthúzni az apk-t, majd berakni a system/app mappába (jogosulságokat beállítottam), de semmi nem történt. adb installal telepítve [INSTALL_FAILED_SHARED_USER_INCOMPATIBLE] hibát kapok.
Egy Sony Ericsson WT19i készüléken próbálkozok, amin RealICS r6 van telepítve, ha esetleg lényeges lenne. Mit kéne csinálnom, hogy tudjam telepíteni, használni? Előre is köszönöm.
-
Karma
félisten
válasz
pittbaba
#622
üzenetére
Nem vagyok nagy guruja a témának, de a Google kitalálta az ilyen felhasználáshoz az ADK-t, és vannak fain kulcsrakész lapok az ilyen hobbifejlesztéshez.
-
pittbaba
aktív tag
Sziasztok!
Szeretnék egy ajtónyitót csinálni az egyik kihasznált Androidos telómból. A programozás résznél egyelőre nem tartok, de ahogy néztem, eléggé könnyen megoldható, viszont az elektronikai résszel bajban vagyok. Találtam több netről rendelhető usb-s relay boardokat, de attól félek, arra rádugom a telefonomat, és nem fog töltődni USB-n keresztül, ami kellemetlen. Az usb kábel szétbarmolásával meg lehetne oldani a tápellátást, de inkább titeket kérdeznélek meg előbb, van e valamilyen bevált kütyü erre, ami esetleg tölti is a telefont USB-n keresztül miközben rajta lóg?
-
pigster
senior tag
Ha a készüléket elforgatom, akkor az Aktivity meghívásakor átadott Intent, meg az átadott extra is megy a levesbe, vagy pedig az Intentek "túlélik" az elforgatást, és azután is használhatók?
Illetve erre tud valaki esetleg megoldást?
-
Sianis
addikt
Én arra tippelnék, hogy unspecified fallback fog történni. Nem tudja értelmezni az értéket, ezért az alapértelmezettet fogja használni. Egyéb XML paramétereknél is ez szokott lenni, hogy ami az új API-ban jött be, de a régi nem érti, akkor választ egy alapértelmezettet. Talán a match_parent - fill_parent páros ilyen. A match_parent-es layoutok is működnek API 7-en.
Sianis
-
fatal`
titán
Ugyanide tartozó kérdés, mert volt egy kis kavarodás a manifestemben, ha én android:screenOrientation="sensorPortrait" -ot használok, akkor mi történik egy Froyo eszközön? Ez a paraméter API Level9-nél lett bevezetve.
-
fatal`
titán
Valaki nem tudja, hogy hogy lehet lekérni, hogy az adott eszköz, amin fut a program milyen képernyő-tájolásokat támogat? (álló-fekvő)
Konkrétan az a gondom, hogy a programom csak állót támogat, fekvőn indítva széthúzza a képet, ezt szeretném elkerülni (fekete csíkot fogok rakni), de csak akkor, ha nincs álló mód eszközön.
Próbáltam googleval keresgélni, de nem találtam csak olyan bejegyzéseket, ami a jelenlegi állapotot kéri le.
Most állóra van korlátozva a program, arra gondoltam, hogyha a képméret még mindig szélesebb, mint magasabb, akkor valójában fekvő. Viszont nem tudom, hogy ez nem okozna-e problémát egy tableten, ráadásul ezt tesztelni sem tudom, eszköz hiányában.
-
Karma
félisten
Ezt a leírást most találtam, kevés fájdalommal lehet egy gépen Hyper-V és HAXM is, noha nem is egy időben
Főleg hasznos, mert VMware-t is szeretnék néha használni. -
fatal`
titán
válasz
SektorFlop
#611
üzenetére
Ehhez nem kell Vbox, a gyári emulátor fut vt-vel és gyors. A VirtualBoxos verzióból 2.2 volt a legújabb, amikor néztem és elég körülményes használni, akkor már inkább a bluestacks.

Ja és az a 2.2-es verzió szintén nem emulált opengl-es 2.0-t, így én nem mentem vele semmire. Normál appok fejlesztéséhez persze jó lehet (és közben valószínűleg van már újabb verzió is).
-
fatal`
titán
A legtöbben biztos láttátok / próbáltátok már, de azért leírom, hátha van valaki, aki nem vette észre:
Érdemes letölteni az SDK Managerben az Intel x86 Emulator Accelerator (HAXM) extrát és az emulátornál x86 imaget használni, mert így értelmes tempója lesz az emulátornak (gpu emulációval játékfejlesztésre is alkalmas végre, bár elvagyok a BlueStacks-szel). Intel VT-x képes cpu (és gondolom chipset) és biosban bekapcsolt VT kell hozzá.
Most már csak az eclipseből fordított apk átviteli tempójára kéne valamit kitaláljanak, mert az még mindig baromi lassú.
-
Sianis
addikt
válasz
WonderCSabo
#603
üzenetére
Nem kell az ActionBarSherlock miatt plusz libet belehúzni. Illetve még ott van a Holo Everywhere. Valamint van egy olyan titkos vágyam, hogy megnézem, csak 4.0 felé lőtt appnak van-e esélye elterjedni.
Sianis
-
pigster
senior tag
Azt hogyan lehet megcsinálni, hogy sqlite használatával a rendezés magyar ékezethelyes legyen? Tehát az "Á"-val kezdődő dolgok ne a lista végér kerüljenek, hanem az "A" után?
Cursor android.database.sqlite.SQLiteDatabase.query(
String table,
String[] columns,
String selection,
String[] selectionArgs,
String groupBy,
String having,
String orderBy)Így csinálnám, működik is szépen, de hol tudom beállítani, hogy magyar abc alapján rendezzen?
-
Sianis
addikt
Szerintem, menjünk át ide, ne offoljunk.
Sianis
Új hozzászólás Aktív témák
- Inno3D GeForce RTX 4070 Ti X3 12G - Karácsonyi akcióban!
- Redragon Kumara K552 RGB Brown Switch magyar billentyűzet
- Lenovo Thinkpad P1 Gen 6 - i9-13980HX, 32GB, 2TB SSD, 16" WQUXGA (3840 2400), RTX 4090
- 15.gen! Intel Core Ultra 9 285K +16-32GB DDR5 RAM +hűtött VRM-es Z890 lap! GAR/SZÁMLA (a Te nevedre)
- OP AudioCodes C450HD Ip Phones - Szines kijelzős - Teams/ Zoom telefon - Új dobozos
- ÁRGARANCIA!Épített KomPhone Ryzen 7 9800X3D 32/64GB RAM RX 9070 XT 16GB GAMER PC termékbeszámítással
- GYÖNYÖRŰ iPhone 12 mini 64GB Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3851
- LG 55C3 - 55" OLED evo - 4K 120Hz 1ms - NVIDIA G-Sync - FreeSync Premium - HDMI 2.1 - PS5 és Xbox!
- Samsung Galaxy A53 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! ASUS ROG GL10DH brand számítógép - R7 3700X 32GB DDR4 512GB SSD RTX 2060S 8GB 500W W11
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: BroadBit Hungary Kft.
Város: Budakeszi



!
Amúgy mi a gondod evvel a (totál beta) cuccal?
Én végül is változókban (is) tároltam el a visszakapott Fragmenteket. Így sikerült a számukat darabonként egyetlenre korlátozni. Ez az egy példány aztán hol bekerül egy View-be, hol kiveszem onnan. A kód működik, de hogy ez helyes megoldás-e, nem tudom. Gondoltam, azért esetleges későbbi olvasókkal ezt megosztom.




TV?

