- Yettel topik
- Honor Magic5 Pro - kamerák bűvöletében
- Honor Magic6 Pro - kör közepén számok
- Samsung Galaxy A54 - türelemjáték
- Vodafone mobilszolgáltatások
- Samsung Galaxy A53 5G - kevesebbet többért
- Redmi Note 13 Pro+ - a fejlődés íve
- iPhone topik
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Xiaomi Mi 9 SE - csúcsimitátor
Hirdetés
-
Rossz üzlet az EV-kölcsönzés
it Küszködik az EV-kölcsönzés miatt a Hertz Global, még több EV-t adnak el.
-
Konzolokra is megjelenik a Deathbound
gp A PC-s verzió mellett megkapjuk a teljes kiadást PlayStation és Xbox platformokra is.
-
Olcsó 5G-s ajánlatot nyújt a Realme Indiának
ma Megérkezett a Realme C65 5G, az első készülék a MediaTek Dimensity 6300-zal.
Új hozzászólás Aktív témák
-
SektorFlop
aktív tag
1) egy példa az új activity megnyitására:
Intent addIntent = new Intent(this, AddFizetes.class);
startActivity(addIntent);2-3) az activityhez tartozó xml-ben van egy GridView, és az adapter pedig egy másik xml fájlba állítja be a sorokat.
Cursor c = dbHelper.getKoltseg();
startManagingCursor(c);
String [] from=new String []{DatabaseHelper.TerhelesNev,DatabaseHelper.TerhelesOsszeg,DatabaseHelper.TerhelesDatum};
int [] to = new int [] {R.id.tvLeiras,R.id.tvKoltseg,R.id.tvDatum};
SimpleCursorAdapter sca = new SimpleCursorAdapter(this,R.layout.rowkoltseg,c,from,to);
grid.setAdapter(sca);nem tudom hogy itt hol kellene hozzá fűznöm a dolgokat, vagy lehet nem így kellene akkor csinálnom?
"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."
-
SektorFlop
aktív tag
Köszi most már előrébb vagyok, felváltva piros és zöld tökéletes amit írtál, csak ezt a getView-et nem igazán értem még mindig, hogy a feltételbe nem azt szeretném megadni hogy minden második legyen piros, hanem adatbázison van "1" olyan oszlopom hogy állapot, és ha az állapot egy akkor legyen piros, ha az állapot "0" akkor legyen zöld. De nem tudom úgy összehozni hogy a position helyet az állapotott ellenőrizzem.
[ Szerkesztve ]
"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."
-
SektorFlop
aktív tag
LogCat-be nem írt semmit, de valószínű már én csináltam valamit rosszul, totál összekutyultam az egészet a végére. De nem hagyom annyiba a dolgot.
Mindenesetre köszönöm a segítséget! Sajnos most már nem lesz időm csak a hétvégén, akkor újult erővel nekivágok ismét!
"Amikor már azt hittem kint vagyok, ezek mindig visszarántottak..."
-
kacsuszka
aktív tag
Itt az új :
07-31 14:28:09.220: E/AndroidRuntime(4536): FATAL EXCEPTION: main 07-31 14:28:09.220: E/AndroidRuntime(4536): java.lang.RuntimeException: stop failed. 07-31 14:28:09.220: E/AndroidRuntime(4536): at android.media.MediaRecorder.stop(Native Method) 07-31 14:28:09.220: E/AndroidRuntime(4536): at com.example.anotheractivity. record$1.onClick(record.java:64) 07-31 14:28:09.220: E/AndroidRuntime(4536): at android.view.View. performClick(View.java:3591) 07-31 14:28:09.220: E/AndroidRuntime(4536): at android.view.View$ PerformClick.run(View.java:14263) 07-31 14:28:09.220: E/AndroidRuntime(4536): at android.os.Handler. handleCallback(Handler.java:605) 07-31 14:28:09.220: E/AndroidRuntime(4536): at android.os.Handler. dispatchMessage(Handler.java:92) 07-31 14:28:09.220: E/AndroidRuntime(4536): at android.os.Looper.loop(Looper.java:137) 07-31 14:28:09.220: E/AndroidRuntime(4536): at android.app.ActivityThread. main(ActivityThread.java:4507) 07-31 14:28:09.220: E/AndroidRuntime(4536): at java.lang.reflect.Method.invokeNative(Native Method) 07-31 14:28:09.220: E/AndroidRuntime(4536): at java.lang.reflect.Method. invoke(Method.java:511) 07-31 14:28:09.220: E/AndroidRuntime(4536): at com.android.internal.os.ZygoteInit$ MethodAndArgsCaller.run(ZygoteInit.java:790) 07-31 14:28:09.220: E/AndroidRuntime(4536): at com.android.internal.os. ZygoteInit.main(ZygoteInit.java:557) 07-31 14:28:09.220: E/AndroidRuntime(4536): at dalvik.system.NativeStart.main(Native[ Szerkesztve ]
-
fatal`
titán
Jó tudni, hogy ilyen is van
Bár hurcibálom a beállított eclipset (be van zippelve), szóval mindegy. Esetleg tud a bundle valami extrát azon kívül, hogy benne van az sdk (gondolom) meg az adt plugin?
Más: Használta már valaki a Facebook API-t? HighScoret szeretnék posztolni a falra, de csak egy csomó katyvasz leírást találtam.
-
pittbaba
aktív tag
Igen! Az egész Loader framework-öt nem értem pontosan hogyan és mire kell használni.
Több dologra is megoldás lehet, az elavult StartManagingCursor-t is felváltaná, ráadásul most pont olyan programot próbálok írni, ami a GTFS txt-ből megcsinálja a SQLite adazbázist, ez sokezer sor, ami miatt az alkalmazás úgy gondolja fölöslegesen vár, és figyelmeztet, megkérdez, akarom e leállítani a futást. Elvileg megoldható, hogy ezek a háttérben fussanak.PH Konfigom: Gigabyte GA-H97M-D3H, i7 4790K,GTX 960, Seasonic SS-620GM
-
pittbaba
aktív tag
Igen, ezt vágom is, egy kicsit bonyolultabban de mégis egyszerűbben akartam megoldani. A meghívó activitin belül nem tudom visszakapni az értéket, csak az onPostExecute-n belül, ezért kicsit nehézkesebb a feldolgozás, hogy innen-onnan hívom meg, de nem ott tudom feldolgozni az eredményt.
Így is jó egyébként, csak paraméterben akkor el kell küldenem, hogy éppen hogyan dolgozza fel az Async taskon belül az eredményt.PH Konfigom: Gigabyte GA-H97M-D3H, i7 4790K,GTX 960, Seasonic SS-620GM
-
thon73
tag
Köszönöm! Mindkét link nagyon hasznos!
Egy újabb apró kérdés, amin nem jutok át (google segítséggel sem). Ki tudja, hogy az adapterben átadott nyitott adatbázist és cursor-t hol kell bezárni? A doksi az onDestroy-t javasolja (és az logikus is, mint az onCreate párja), de a program az onPause után is meg tud lógni...
Vagy hogyan tudom az onStart-ba tenni az adapter elkészítését? Az nem kell az onCreate után kész legyen? (ListActivity-ben) Előre is köszönöm! -
sztanozs
veterán
Regisztráltam, és ezt kaptam:
Open the email on any iOS device and touch register - TestFlight takes care of the rest!WTF - nem Androidra lesz?
JOGI NYILATKOZAT: A bejegyzéseim és hozzászólásaim a személyes véleményemet tükrözik; ezek nem tekinthetők a munkáltatóm hivatalos állásfoglalásának...
-
pigster
senior tag
... és hogyan tötltötted fel? Mert én is próbáltam volna egy appot feltenni, letöltöttem a desktop appot a feltöltéshez, de a zip fájlban valami macOS dolgok vannak, úgyhogy hagytam a francba, nem szórakoztam vele
Szóval te hogyan csináltad?FIGYELEM! A többszázezres Samsung okostévék kéretlen reklámokat tolnak az arcodba.
-
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!
-
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.
-
-
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.
[ Szerkesztve ]
“All nothings are not equal.”
-
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.
[ Szerkesztve ]
-
pittbaba
aktív tag
-
pittbaba
aktív tag
Igen, az OnPostExecute részben dolgozom fel az eredményt pont e miatt, hogy a főszálban tudjak maradni, így is most már Async, Looper, Timer egy appban már szétesek fejben lassan, de legalább haladok az alapok felderítésével
PH Konfigom: Gigabyte GA-H97M-D3H, i7 4790K,GTX 960, Seasonic SS-620GM
-
pittbaba
aktív tag
Áhh szóval így hívják ezt a megoldást Az IOIO Looper miatt kellett ilyet használnom, példában volt, és nagyon jól működik!
A Handler is dolgozik szépen, végre készen lett az App Telefon hívásával szám alapján és Bluetooth mac alapján adatbázisból kérdezve jogosultnak nyitja az ajtót a kis IOIO board. Nagyon jó ketyere, ajánlom mindenkinek, lehet automatizálni a pecót!PH Konfigom: Gigabyte GA-H97M-D3H, i7 4790K,GTX 960, Seasonic SS-620GM
-
pittbaba
aktív tag