Hirdetés
- DUNE médialejátszók topicja
- Amlogic S905, S912 processzoros készülékek
- AMD Navi Radeon™ RX 9xxx sorozat
- Utánajártunk, hogy melyik memória mennyire drágulhat
- OLED TV topic
- Kellemes karácsonyi ünnepeket!
- Kormányok / autós szimulátorok topikja
- HP EliteBook / ZBook topik
- Végleg lemondott a régi gépekről a Steam
- A Windows 11 nem akarja ránk erőltetni az AI applikációkat – vagy mégis?
Új hozzászólás Aktív témák
-
thon73
tag
válasz
WonderCSabo
#2096
üzenetére
Az entries értékét leellenőriztem, az mindig megfelelő.
Egy kicsit előrébb jutottam - néha ugyanis feldobja a listát, néha nem - és azt találtam, hogy elindítja a filtert, mégpedig mindenképp. A filter viszont kiveszi a még üres (null) értéket az adatokból, majd PÁRHUZAMOSAN fut a performFiltering és a Loader. A Loader előbb végez, és onLoadFinished-ben beállítja az adatokat. Majd jön a Filter (ami még az üres adatokat szűrte!), és átállítja az egész történetet üresre, hiszen -szerinte - nincsenek is adatok.
Erre nem is gondoltam, mert 1. ekkor még elvileg nem is létezik a filter. 2. ha a filter-szöveg üres, akkor nem is szűr. Csakhogy ilyenkor is beállítja a teljes adatmennyiséget - ami szerinte: üres.Namost. Hogyan bogozom ezt ki?
Az onCreateView-ben állítom be a filtert, így:filter = (EditText) view.findViewById(R.id.filter);
filter.addTextChangedListener(new TextWatcher()
{
@Override
public void onTextChanged(CharSequence s, int start, int before, int count)
{
((MainListAdapter)getListAdapter()).getFilter().filter(s);
}Ezt nem tudom nagyon máshova tenni, mert csak egyszer indíthatom el.
Tegyek be egy flag-et az adapterbe, ami figyeli, hogy vannak-e már beállított adatok??
Vagy ne engedjem meg, hogy az adatok értéke null legyen? Hanem az üres adatot egy üres (de létező) ArrayList jelentse?
Vagy mit érdemes ilyenkor csinálni?((Az ArrayAdapter is alternatíva lenne, de annak majd minden részét módosítottam volna, ezért használtam BaseAdapter alapot. Sztem. a probléma ettől független. ))
Be is bizonyítottam, hogy ez a probléma, itt:
protected void publishResults(CharSequence constraint, FilterResults filterResults)
{
------------------>if (filterResults.values != null)
{
filteredEntries = (List<SampleEntry>) filterResults.values;
notifyDataSetChanged();
}
}No, így működik. Órákat játszottam vele, de erre nem gondoltam volna...
Most már csak arra kell rájönnöm, hogy a.) mi a nyavaja indítja a filtert b.) ezt a tákolt ellenőrzést hogyan tudom szépen megcsinálni... -
eastsider
nagyúr
válasz
WonderCSabo
#2098
üzenetére
jah szóval loadermanagernél ne is foglalkozzak a képpel, mert ez majd külön behúzza a képeket? (kb) a listám mellé?
(nagy vonalakban). szóvel ez az adapterbe épül be -
WonderCSabo
félisten
válasz
eastsider
#2097
üzenetére
Az adapterednél kell használni. Megkapja az urlt és egyből lehúzza, cacheli, kijrajzolja, nagyítja stb. a képet ahogy kell. Nagyon okos.

Pl. az éppen futó projektemben egy getView() metódusban:
ImageLoader.getInstance().displayImage(imageUrl, (ImageView) choiceView);
Természetesen a DisplayImageOptions és az ImageLoaderConfiguration tetszés szerint be tudod állítani, ez részletesen dokumentálva van.
-
eastsider
nagyúr
köszi
én is csodálkoztam, hogy kirajzolja
genymotionbe még fel se tűnt, hogy milyen lagos (bár azzal foglalkoztam, h mi a szarnak rajzolja ki?
) de telón eléggé durva voltCsabo Neked is köszi!
content Providerrel tudom használni? (belenéztem a példába, de nem volt egyértelmű)
-
WonderCSabo
félisten
válasz
eastsider
#2094
üzenetére
Én erre libet használok, konkrétan a UniversalImageLoader-t. De a Picasso is rohadt jó.
Na Karma megelőzött.
Egy másodperccel! 
thon73: ha meghívódik a notifydatasetchanged, akkor firssítenie kéne a listát. A probléma ott lehet, hogy rossz entries-t kap be másodszorra, nem?
-
eastsider
nagyúr
Sziasztok!
ListFragmentbe jelenítek meg adatokat, Loadermanagerrel
hogy tudom szépen megoldani, hogy egy képet meg tudjak jeleníteni a listában?
ha simán megkapja az ImageView a kép Uri-ját, akkor is kirajzolja, csak uge ezt nem így kellene megoldani (full size image kirajzolása eszi a hw-t) -
thon73
tag
Sziasztok! Elakadtam egy BaseAdapter bővítésnél. Az adapter egy ArrayList-et használ, amit egy setData() metódus állít be:
public void setData( List<SampleEntry> entries )
{
this.originalEntries = entries;
this.filteredEntries = entries;
notifyDataSetChanged();
}A setData()-t egy ListFragment-ben hívom meg, egy Loader részeként:
public void onLoadFinished(Loader<List<SampleEntry>> loader, List<SampleEntry> data)
{
((MainListAdapter)getListAdapter()).setData(data);
}Az első végrehajtáskor ez tökéletesen működik. Ha elfordítom a készüléket, akkor is lefutnak a fenti metódusok, de - a notifyDataSetChanged() - hívás ellenére NEM jelenik meg semmi.
Ha ekkor frissítem a listát (pl. még egy elemet hozzáadok), akkor az EGÉSZ lista megjelenik, vagyis az összes elemet tartalmazza.
Ha az elemet (próbaként) a setData() részben adom hozzá, akkor sem jelenik meg a lista.Rengeteget olvastam a notifyDataSetChanged()-ről, de nem jutottam eredményre. Az a gyanúm, hogy nincs még ListView, amikor az első setData() lefut, ezért nem tud még mit frissíteni.
Hogyan tudnám ezt megoldani??
-
Karma
félisten
válasz
h1ght3chzor
#2090
üzenetére
A Calendaros varázslatra semmi szükség nincs, az egészet irtsd ki. Fogd meg a Date objektumot, amit a parse visszaadott, és használd a getTime() metódusát a milliszekundumok megszerzéséhez.
-
h1ght3chzor
őstag
Calendar calendarBeginTime = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss");
Date beginTimeDate = (Date) format.parse(beginTime);
calendarBeginTime.set(beginTimeDate.getYear(), beginTimeDate.getMonth(), beginTimeDate.getDay(),
beginTimeDate.getHours(), beginTimeDate.getMinutes(), beginTimeDate.getSeconds());
calEvent.put(CalendarContract.Events.DTSTART,calendarBeginTime.getTimeInMillis());Így mindet áthúzza, és azt írja, hogy "The method get****() from the type Date is deprecated". Vagy nem így kellene használni?
-
Karma
félisten
válasz
h1ght3chzor
#2088
üzenetére
Nem teszteltem és csak fejből írtam, de elvileg:
SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
Date date = format.parse(endTime); -
h1ght3chzor
őstag
Hogyan tudom átalakítani a String endTime="11/08/2011 09:00:00"; adatomat, hogy úgy tudjam használni, mint az alábbi kódban:
Calendar endTime = Calendar.getInstance();
endTime.set(2012, 9, 14, 8, 45);
calEvent.put(CalendarContract.Events.DTEND, endTime.getTimeInMillis()); -
kemkriszt98
tag
válasz
kemkriszt98
#2086
üzenetére
Megoldás: Thread-ben invalidate() helyett postInvalidate() hivogatása....

-
kemkriszt98
tag
válasz
WonderCSabo
#2085
üzenetére
Egy játékon dolgozom... a service-ra már én is gondoltam de nem tűnt a legjobb megoldásnak...
-
WonderCSabo
félisten
válasz
kemkriszt98
#2084
üzenetére
Milyen jellegű munka miatt kell frissíteni? Erre vannak megoldások: Thread, AsyncTask, Service, IntentService, Looper, stb...
-
kemkriszt98
tag
Na egy másik kérdés.... folyamatosan frissítenem kellene a View-t viszont nem tudom, hogy ezt hol tegyem.... nem akaszthatom meg ezzel a főszálat de másik szálból meg nem "nyúlkálhatok" másik szálból létrehozott View-khoz ... Arra is gondoltam hogy a View maga indítson egy szálat ami frissíti de csak nem tetszik neki...
-
kemkriszt98
tag
válasz
WonderCSabo
#2082
üzenetére
Ja de...
Egy ifben inicializálom és lemaradt az else ág.... -
WonderCSabo
félisten
válasz
kemkriszt98
#2081
üzenetére
Az lv biztos nem null?
-
kemkriszt98
tag
Sziasztok, kódból próbálok hozzáadni egy view-t egy LinearLazout-hoz de mikor meghívom a setLayoutParams metódust nullPointerException-t kapok..... valami ötlet? lehet azért mert egy "saját" view-ról van szó?
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT);
lv.setLayoutParams(params); -
Benex
senior tag
Sziasztok!
Egy nagyon egyszerü prograot csinálok. A vak irás jeleit rendes betük mellé szeretném tenni. 3 osztályom lenne fő osztály (itt ki lehet választani hogy a magyar ill. angol brille jelek legyenek ).
Ez a kód a hun_braille.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<ScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<!-- Elso elem a görgetősávban -->
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/txtview1"
android:layout_width="wrap_content"
android:layout_height="234dp"
android:layout_alignParentLeft="true"
android:gravity="center"
android:text="A" />
<ImageView
android:id="@+id/imageViewA"
android:layout_width="wrap_content"
android:layout_height="234dp"
android:layout_alignParentRight="true"
android:src="@drawable/Braille_A1" />
</RelativeLayout>
<!-- Második elem -->
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/txtviewB"
android:layout_width="wrap_content"
android:layout_height="234dp"
android:layout_alignParentLeft="true"
android:gravity="center"
android:text="B" />
<ImageView
android:id="@+id/imageViewB"
android:layout_width="wrap_content"
android:layout_height="234dp"
android:layout_alignParentRight="true"
android:src="@drawable/Braille_B2" />
</RelativeLayout>
</LinearLayout>
</ScrollView>
</RelativeLayout>És valamiért nem fut le , hibát sem ír és nem tudom mi a gond.
(Kép furmátumnak milyennek kell lennie? Jelengleg *.png és drawable mappában van)Előre nagyon köszönöm a segítséget!
-
Karma
félisten
válasz
WonderCSabo
#2078
üzenetére
Már ha az ember 14-es API felett dolgozik...
-
bAtt001
addikt
jól gondolom hogy ha akarok egy settings menüt csinálni a gyári droid settings menü mintájára akkor nekem ehhez listviewt kell használnom? elsőre elég bonyolultnak tűnik ez a lista

-
bAtt001
addikt
közben rendezgettem a kódon valamit, és megjavult, de még mindig nem értem h miért működik amikor tegnap nem ment

így szedem ki am az intentből, key-ek jók azokat másoltam, nincs elgépelés
protected void onHandleIntent(Intent intent) {
urlCurrent = intent.getStringExtra("urlCurrent");
urlTomorrow = intent.getStringExtra("urlTomorrow");
...a service-t a fenti alarm indítja, azzal nincs gond indította rendesen csak mindig nullpointert kaptam a kér urlt tároló stringre, de most gond nélkül átmegy az extra és helyes a működés ahogy látom

-
bAtt001
addikt
jövök megint kérdéssel, van egy service-em ezt szeretném alarm managerrel bizonyos időközönként indítani, eddig oké minden indítja is, DE ennek a service-nek tovább kellene adnom 2 string paramétert, belerakom szépen intent-be a 2 cuccot aztán pendingintent majd időzítem az alarm managerrel. de amikor átér a service-be az intent már nincs benne valamiért a 2 extra, kb 2 órája bújom a stackoverflowt, minden javaslatot kipróbáltam onnan de még mindig nem tudom átküldeni a 2 extrát. itt a kódrészletem:
Intent intent = new Intent(this, httpService.class);
intent.putExtra("urlCurrent", currentWeatherURL);
intent.putExtra("urlTomorrow", tomorrowWeatherURL);
intent.setAction("getData");
PendingIntent pIntent = PendingIntent.getService(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
alarm.setRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),6000, pIntent);van valami ötletetek? azt olvastam intentnek adni kell egy dummy actiont hogy elküldje az extrákat, ezt meg is tettem de még mindig amikor lekérem a service-ben az extrát simán nullt ad vissza

-
eastsider
nagyúr
Sziasztok!
képeket szeretnék tárolni úgy db-ben, hogy filepath-al hivatkozok rájuk..
magyarul db-ben eltárolom valahogy a filepath-t (szóval nem BLOB-ként) és visszakérésnél, szintén filepathra hivatkozva jelenítem meg egy fragmenten a képet.(vagyíis csak egy thumbnailt)
szóval DB-ben csak a filepatht tárolom egy mezőbenfoglalkozott valaki mmár ilyesmivel? hogy leehtséges ez?
ezt találtam
-
bAtt001
addikt
sziasztok
megint én
akarok saját Service-t csinálni hogy azon belül kérdezzek le adatokat szerverről, na lekérdezés meg is van az Asynctask-ban a service is lassan összejön csak nem tudom hogy kellene elindítani
elég buta kérdés gondolom de sehol se látom hogyan indítják el azt a konkrét Intentservice-t
ötlet?jaj lehet megvan, az intentbe kell megmondani hogy azt akarom elindítani, asszem ennyi lesz

-
avassavas
újonc
-
avassavas
újonc
Helló helló
Egy olyan kérdésem lenne, hogy valaki esetleg nem használ titániumot?
Pár napja eldöntöttem hogy kipróbálom mert elég jó alternativának tűnik, de már a kezdetben elvérzett.
Problémám a következő:
Feltelepítettem annak módja és rendje szerint (Win XP 32bit SP3), minden SDK verzio pipa titaniumon belül is, és sdk managerben is, beállítva az sdk eléri útja. Alloy próba project létrehozva, hozzá adva ADVben az emulator, és az eszközeim is( TAB, TELEFON) és akkor futtatás>Titanium Command-Line Interface, CLI version 3.2.1, Titanium SDK version 3.2.2.GA
Copyright (c) 2012-2014, Appcelerator, Inc. All Rights Reserved.
Please report bugs to http://jira.appcelerator.org/
[INFO] : Found Titanium plugin id=ti.alloy version=1.0
[INFO] : Deploy type: development
[INFO] : Building for target: emulator
[INFO] : Building for emulator: Nexus 4
[INFO] : Targeting Android SDK: 19
[INFO] : Building for the following architectures: armeabi, armeabi-v7a, x86
[INFO] : Signing with keystore: C:\Documents and Settings\Rendszergazda\Application Data\Titanium\mobilesdk\win32\3.2.2.GA\android\dev_keystore (tidev)
[INFO] : Debugging disabled
[INFO] : Profiler disabled
[INFO] : Forcing rebuild: C:\Documents and Settings\Rendszergazda\Documents\Titanium_Studio_Workspace\Demo Project\build\android\build-manifest.json does not exist
[INFO] : Found Alloy app in C:\Documents and Settings\Rendszergazda\Documents\Titanium_Studio_Workspace\Demo Project\app
[INFO] : Executing Alloy compile: alloy.cmd compile C:\Documents and Settings\Rendszergazda\Documents\Titanium_Studio_Workspace\Demo Project\app --config platform=android,version=0,simtype=none,devicefamily=none,deploytype=development
[INFO] : ----- MVC GENERATION -----
[INFO] : [global style] writing to cache...
[INFO] : [index.xml] view processing...
[INFO] : style: "index.tss"
[INFO] : view: "index.xml"
[INFO] : controller: "index.js"
[INFO] : created: "Resources\android\alloy\controllers\index.js"
[INFO] : created: "Resources\android\alloy\styles\index.js"
[INFO] :
[INFO] : [app.js] Titanium entry point processing...
[INFO] : created: "Resources\android\app.js"
[INFO] :
[INFO] : ----- OPTIMIZING -----
[INFO] : - android\alloy.js
[INFO] : - android\alloy\sync\localStorage.js
[INFO] : - android\alloy\sync\properties.js
[INFO] : - android\alloy\sync\sql.js
[INFO] :
[INFO] : Alloy compiled in 5.05037s
[INFO] : Alloy compiler completed successfully
[INFO] : Launching emulator: Nexus 4
[INFO] : Running: C:\Android\sdk\tools\emulator.exe "-avd" "Nexus 4" "-port" "5554" "-no-boot-anim" "-partition-size" "128"
[ERROR] Application Installer abnormal process termination. Process exit value was 1Ha pedig eszközön futtatom>
Titanium Command-Line Interface, CLI version 3.2.1, Titanium SDK version 3.2.2.GA
Copyright (c) 2012-2014, Appcelerator, Inc. All Rights Reserved.
Please report bugs to http://jira.appcelerator.org/
[INFO] : Found Titanium plugin id=ti.alloy version=1.0
[INFO] : Deploy type: test
[INFO] : Building for target: device
[INFO] : Building for device: 20080411
[INFO] : Targeting Android SDK: 19
[INFO] : Building for the following architectures: armeabi, armeabi-v7a, x86
[INFO] : Signing with keystore: C:\Documents and Settings\Rendszergazda\Application Data\Titanium\mobilesdk\win32\3.2.2.GA\android\dev_keystore (tidev)
[INFO] : Debugging disabled
[INFO] : Profiler disabled
[INFO] : Forcing rebuild: C:\Documents and Settings\Rendszergazda\Documents\Titanium_Studio_Workspace\Demo Project\build\android\build-manifest.json does not exist
[INFO] : Found Alloy app in C:\Documents and Settings\Rendszergazda\Documents\Titanium_Studio_Workspace\Demo Project\app
[INFO] : Executing Alloy compile: alloy.cmd compile C:\Documents and Settings\Rendszergazda\Documents\Titanium_Studio_Workspace\Demo Project\app --config platform=android,version=0,simtype=none,devicefamily=none,deploytype=test
[INFO] : ----- MVC GENERATION -----
[INFO] : [global style] loading from cache...
[INFO] : [index.xml] view processing...
[INFO] : style: "index.tss"
[INFO] : view: "index.xml"
[INFO] : controller: "index.js"
[INFO] : created: "Resources\android\alloy\controllers\index.js"
[INFO] : created: "Resources\android\alloy\styles\index.js"
[INFO] :
[INFO] : [app.js] using cached app.js...
[INFO] :
[INFO] : ----- OPTIMIZING -----
[INFO] : - android\alloy.js
[INFO] : - android\alloy\sync\localStorage.js
[INFO] : - android\alloy\sync\properties.js
[INFO] : - android\alloy\sync\sql.js
[INFO] :
[INFO] : Alloy compiled in 5.38633s
[INFO] : Alloy compiler completed successfully
[INFO] : Processing JavaScript files
[INFO] : Encrypting JavaScript files: C:\Documents and Settings\Rendszergazda\Application Data\Titanium\mobilesdk\win32\3.2.2.GA\android\titanium_prep.win32.exe "com.test.project" "C:\Documents and Settings\Rendszergazda\Documents\Titanium_Studio_Workspace\Demo Project\build\android\assets" "app.js" "alloy/backbone.js" "alloy/CFG.js" "alloy/constants.js" "alloy/controllers/BaseController.js" "alloy/controllers/index.js" "alloy/styles/index.js" "alloy/sync/localStorage.js" "alloy/sync/properties.js" "alloy/sync/sql.js" "alloy/underscore.js" "alloy/widget.js" "alloy.js" "_app_props_.json"
events.js:72
throw er; // Unhandled 'error' event
^
Error: spawn Unknown system errno 193
at errnoException (child_process.js:980:11)
at ChildProcess._handle.onexit (child_process.js:771:34)
[ERROR] Application Installer abnormal process termination. Process exit value was 8Két napja olvasgatok utána neten, és kérdeztem appcelerator-n is de nulla válasz (nem a lesegítő készebb közösség..) elolvastam a témában ott található javaslatokat ki is próbáltam őket, de sajnos a dolog változatlan..
Igazából sejtésem szerint én rontottam el valamit telepítésnél, környezeti változók is be vannak pedig állítva, és használok Eclipse-t és MoSync-et is, és azok tökéletesen működnek..Valaki nem tudna segiteni esetleg hogy mit nem állítottam be vagy rontottam el? Köszönöm előre a válaszokat 
-
Karma
félisten
válasz
WonderCSabo
#2058
üzenetére
A folyamatos fájlnyitás-flush-zárás miatti teljesítménycsökkenésen kívül semmi gond nincs vele.
-
thon73
tag
válasz
WonderCSabo
#2058
üzenetére
Köszönöm a sok ötletet és útmutatót!

Lehet, hogy egy esős délutánt már illene azzal töltenem, hogy végigolvasom a Java-t, nem mindig csak azt, ami éppen kell.Én még nem látom át teljes mélységében, hogy melyik megoldás a jobb/ideálisabb, de azt már látom, hogy a probléma bármelyikkel megoldható. A nyitás/zárást én speciel eddig is minden kiírt blokk köré raktam, nem hiszem, hogy jelentős gyorsulás érhető el egy hosszútávon nyitott file-lal. Viszont egy esetleges adatvesztés jobban zavarna, ha pl. zárás és flush nélkül lépek ki véletlenül a programból.
Annyit viszont már átláttam, hogy ez a worker-thread file-kezelés tud elég csapdás lenni... na ezek a kész megoldások ebben biztosan segítenek.
-
WonderCSabo
félisten
válasz
bAtt001
#2059
üzenetére
Szerintem a hivatalos tutorialnál nem lehet szebben leírni. Még sample is van.
-
bAtt001
addikt
sziasztok
ott tartok az időjárásos alkalmazásomban hogy adatokat szerverről lekérem megjelenítem eddig ez működik alkalmazás indításra és gombnyomásra. na itt jön az a rész ami számomra még ismeretlen hogy háttérben mondjuk óránként hogy lehet elvégezni ezt a frissítést
alarm manager környékén nézelődtem de eléggé sok infót találtam egyszerre nem tudom mi kellene nekem legelőször és hogy működik ez az egész. milyen jogok kellenek manifestben, ki indítja el az időzítést, hogy hívom meg egy időzítéskor az adat lekérést és frissítést? van erre valami egyszerűbb leírás egy helyen?
vagy egyáltalán jó felé kezdem el nézelődni? előre is köszi -
Karma
félisten
válasz
WonderCSabo
#2056
üzenetére
Jogos, igazad van. A ThreadPoolExecutorok (köztük a single thread is) pont azt az infrastruktúrát adják meg a BlockingQueue köré, amit egyébként kézzel is meg kéne írni.
Bár azért a fájlírós példánál maradva, egy kicsit körülményesíti a dolgot, hogy a fájlt valamikor nyitni és zárni is kell. Nehezebben összeilleszthető a Runnable-ökkel talán, mint alacsonyszinten építkezve.
-
Karma
félisten
válasz
WonderCSabo
#2053
üzenetére
Szerintem (és ez most tényleg csak vélemény) a kettő másra való. A BlockingQueue-val egy fajta feladatot lehet termelőkre-fogyasztókra bontani és skálázni, az Executorok meg inkább eltérő feladatok ütemezésére több szálon.
-
eastsider
nagyúr
válasz
WonderCSabo
#2051
üzenetére
első fragmentről szeretném átadni egy ID-t a másiknak, és így új feltételt megadni a loadernek, ami szerint szelektáljon
az a baj, hogy valamiért nem kapja meg az ID-t a második fragment... csak nullt
-
eastsider
nagyúr
válasz
WonderCSabo
#2048
üzenetére
az Activityben nem kell semmi pluszt implementálni?
itt adnám át az értéket (PicFragment)
PicFragment fragment = new PicFragment();
Bundle bundle = new Bundle();
bundle.putLong("f_id",getListAdapter().getItemId(position) );
fragment.setArguments(bundle);
Log.i(TAG,"f_id"+bundle);
((FilmActivity) getActivity()).switchFragment(2);
(onitemclick), logCAT ki is írjaide küldeném: FilmFragment
Bundle bundle = getArguments();
long i=0;
Log.i(TAG,getArguments()+"");
if(bundle != null){
i = bundle.getLong("f_id");
Log.i(TAG,getArguments()+"");
}
if (i>=0) {
select = "("+DbConstants.Pic_db.KEY_FILM_ID+" ="+i+")";
}else
select=null;(ez onCreateLoaderbeb van), és a loader inicializálásához kell a select feltétel..(adatváltozás)
hol kellene inicializálnom a loadert, hogy megkapja getArguments()-el az adatot? -
WonderCSabo
félisten
válasz
eastsider
#2047
üzenetére
Ezzel én már nagyon sokat szívtam.

Felül kell definiálni a következő metódust:
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}Ekkor mindig meghívja a getItem()-et lapozáskor, ahol pedig visszadsz egy új Fragmentet.
thon73: Nyilván ha van mondjuk egy thread.start() hívás az onCreate()-ben, akkor minden egyes Activity kreáláskor az le fog futni. Erre vagy figyelsz, vagy megoldod máshogy.
Ha küldözgetni akarsz kiíráshoz feladatokat, akkor erre való az IntentService.Közhely, de minél többet tud az ember, annál jobban rájön, hogy mennyire nem tud semmit.

-
eastsider
nagyúr
Sziasztok!
valaki nem járatos véletlenül a viewpagerekben, FragmentStatePagerAdapter -ben?
konkrétan arra lennék kíváncsi, hogy tudná minden egyes lapozásnál újra létrehozni a fragmentet (adatváltozás miatt)
-
thon73
tag
válasz
WonderCSabo
#2045
üzenetére
Ja, nem erre használnék Loopert, attól függetlenül tűnt fel. Looperrel egy lineáris file írást akartam kitenni, hogy a számítások meg az írás külön szálon fusson. És csak küldözgetné a háttérszálra, ami kész van és ki kell írni...
Olymódon semmi gond, hogy le tudom állítani, csak nem is gondoltam rá idáig. Ha életben hagyom, akkor nem fog újabb és újabb szálakat indítani minden egyes Activity újraindítás? Vagy nem érdekes, mert eltakarítja, amelyikre nincs élő hivatkozás?A cikkekért köszönet, megint csak megvilágosodott egy-két dolog. Minél többet ismerek meg az androidból, annál nagyobb a rálátásom a saját tudatlanságomra...
-
-
thon73
tag
válasz
WonderCSabo
#2040
üzenetére
Bocs, átmenetileg net-mentes lettem...
Tehát, ha az elindított thread-ek tovább futhatnak, akkor azokat is illik leállítani onPause-ban? Ami meg hosszan kell azt indítsam service-ként? Eddig nem használtam Looper-t (vagy legalábbis nem tudtam róla), ez meg most elbizonytalanított...
-
-
Sianis
addikt
Hogyan készítsük variánsokat Gradle segítségével. [link]
Kipróbáltam, tök jól működik. Egyik projektbe kellett tennem most olyat, hogy más legyen az alap URL az API hívásoknál. És lehet futtatni 2 külön verziót, kódbázis ugyanaz, megférnek együtt egy eszközön, mégis más címre küldenek.
Szóljatok, ha zavaró, hogy az érdekesebb dolgokat így direktbe belököm.
Sianis
-
thon73
tag
Aha. Pont erre jutottam, hogy az app sokkal ellenállóbb, mint az activity.
Azt hittem pedig, hogy amikor memóriára van szükség, akkor nem csak az Activity-t, hanem a teljes App-ot leállítja. (A kilövés az világos, az FC is logikus, de arra nem gondoltam)Csakhogy ez újabb gondolatokat is ébreszt bennem: Ha az app megmarad, akkor a teljes process megmarad, nem? Akkor viszont az elindított thread-ek sem fognak megállni? Vagy hogyan van ez? Én azt gondoltam, hogy a BACK-kel (v. pl. finish-sel) való kilépéskor, ill. ha elfogy a hely, akkor ez leáll - de ezek szerint tévedtem.
-
thon73
tag
Meg tudja valaki mondani, hogy elméletben meddig él az Application példány?
Globális változókat tettem Application szintre, és véletlenül vettem észre, hogy ezek a - hiába indítottam el ezeregy programot - nem szűnnek meg soha. (Mondjuk, újratalapítésig pl.)
Erre lehet számítani, vagy az Application osztály is eltűnik egyszercsak, és újra létrehozásra kerül egy következő indításkor?
-
-
Karma
félisten
Sehogy, mert erre nem alkalmas. Valamilyen lokális megoldásra lesz szükséged... Algoritmikusan elég nehéz lenne biztosítani hogy mindenki ugyanakkor induljon...
Egy huszárvágás jellegű ötletem azért van: az eszközök NTP-vel megszerzik a pontos időt, a szerver meg olyan üzenetet küld ki, hogy "14:35:20-kor indítsátok el a lejátszást".
-
Sianis
addikt
válasz
WonderCSabo
#2028
üzenetére
ButterKnife pehelysúlyúbb. Én is Annotations párti voltam, de mivel ez jóval kevésbé terhes dolog így inkább ezt szoktam már használni. Inkább olvashatóságot ad ez a kódnak, mint keretrendszert.
Sianis
-
WonderCSabo
félisten
válasz
h1ght3chzor
#2024
üzenetére
Splitteled a : és a ; mentén, végigmész és szépen hozzáadod a JSONObject-hez. Ez utóbbihoz itt van tutorial.
(#2023) Sianis: Én ButterKnife helyett AndroidAnnotationst használok.

-
Sziasztok!
Van egy feladat amit meg kell oldanom, de nem találom rá a megfelelő megoldást.
Röviden: Android készülékekről van szó, de a kérdés inkább JAVA-s. A feladat a következő. Van egy szerver tablet, ami irányít 30-50 kliens tabletet. A szervernek parancsokat (pl. videó indítása) kell küldenie a klienseknek, és ezeknek a parancsoknak egyszerre kell megérkezniük a tabletekre, ez nagyon fontos! Illetve visszafele is kell működjön az adatküldés, némely esetben a kliensek is küldenek a szervernek adatokat (statisztika).
Szóval egy ilyen hálózatot kell felépítenem. Bevallom őszintén nem vagyok a toppon hálózat témában. Utánanéztem a TCP illetve UDP kapcsolatoknak. UDP példaprogramot csináltam is, de sajnos csomagvesztés lép fel, nem minden készülék kapja meg az adatokat. A TCP 30-50 tabletnél nem tudom mennyire működhet.
Ti mit gondoltok erről? Hogyan kéne megvalósítani? Előre is köszönöm a tippeket!

Üdv
Gergő -
h1ght3chzor
őstag
Az alábbi sorokból van x db enterrel elválasztva, hogyan tudok JSON Objektumot csinálni belőlük?
Subject: VMI; StartDateTime: 11/08/2011 09:00:00 AM;12/13/2011 09:00:00 AM; EndDateTime: 11/08/2011 10:00:00 AM;12/13/2011 10:00:00 AM; Chair: LastName Firstname; Room: null
-
Sianis
addikt
ButterKnife háza táján érdekes mozgolódás. [link]
Sianis
-
thon73
tag
válasz
eastsider
#2020
üzenetére
Aha. Két malomban őrlünk. Háromban.
Tehát: a program elkészítésének a folyamatára értem, hogy először egy vagy két, de független táblával próbálkozz, az is elég izgalmat ad. Csak ha ez már jól működik, akkor próbáld beletenni a join-t táblát. Egyszerre kivitelezni az egészet annyi hibalehetőséget ad az első próbáig, hogy nagyon nehéz kilábalni belőle. Szerintem jobb, ha egy egyszerűbb része biztonságosan működik, és utána lépsz tovább.
A végső elrendezéshez:
Két megközelítés létezik (sztem.): én egyesével viszem be az adatokat. Vagyis: EGY kép/könyv/adat felvételekor választom ki hozzá a megfelelő kapcsolt adatot (tekercs/író stb.)
Te sztem. KÖTEGELT felvitelt szeretnél: kiválasztod a tekercset, aztán hozzárendelsz - gondolom egy hatalmas poolból - egy csomó képet. Ez is járható út.A lényeg nem változik:
Egyszerre egy rekordot tudsz létrehozni. Annak a mezőit kell kitöltened. A TEKERCSEK mező értékét kiválaszthatod a létrehozáskor (egyszeres módszer), vagy már tudod előre, és ezt az ismert tekercs _id-t teszed az összes létrehozandó rekordba (kötegelt mód).Mind a két módszernek megvan a létjogosultsága. Pl. van 3000 képem, kijelölök 250-t, és egyszerre (kötegben) hozzárendelem egy tekercshez. Ennek ellenére nem fogod tudni megkerülni az egyszeres módszert sem, két okból: 1. a képek más adatokat is tartalmaznak ISO, hely stb. Ezt honnan veszik? Minden tekercsen egyforma? Akkor uis a tekercs táblába tartozik. EXIF adatot importál? Az egy külön funkció, és kézzel is meg kell tudnod változtatni. 2. mi van, ha egy képet rossz helyre raktál?
Sztem. is hasznos, sőt a legfontosabb egy program felépítését megbeszélni; kételyem csak abban van, hogy mennyire érdekes ez másoknak, akik itt esetleg rövid android praktikákat akarnak megtudni. De éppen át is vonulhatunk valami semleges területre, ha untatjuk az itt olvasókat. Én speciel hasznosnak tartanám, ha nálamnál tapasztaltabbak is hozzátennék a tudásukat; azt azért átérzem, hogy ez a projekt mennyire fontos neked.
Amúgy én azt tenném, hogy egyszerűen, magyarul és képekkel leírnám, hogy mit is akarok, hogy tegyen a program, végiglogikáznám, aztán ahhoz alkotnám meg a hátteret.
-
eastsider
nagyúr
lehet nem jól fogalmaztam. telórol írtam..
szóval Te azt mondod, hogy először úgy csináljam meg, hogy egy listFragment, amin csak a képek tábla jelenik meg. szóvel úgymond "független" a másiktól (nem az adatbázisra gondolok).
és itt cisnálok egy dialogot, amin kiválasztom, melyik tekercshez tartozzon a felvivendő kép?
és így már listázni simán tudnám a JOIN-nal. így értetted nem?
a függelten tekercs táblát nem értem, azt hogy érted?azt kellene megoldani, hogy rákatt a tekercsre, átdob a hozzá tartozó képeket tartozó listára.
ekkor, mivel nincs kép, de megvan a tekercs ID-je, létre tudom hozni a képeket, mert megvan az ID, nem jól gondolom? mármint a film ID-je megvan, innentől nincs sok gond, vagy rosszul értem?az összes kép kilistázását későbbre hagynám
nem hiszem, hogy felesleges lenne, ha valaki rákeres erre a topikban, legalább fog valamit találni

-
thon73
tag
válasz
eastsider
#2018
üzenetére
Bocs, de valahol teljesen elvesztettem a fonalat... Hogyhogy nem tartozik adat egy id-hez, amit viszont ismersz?
Szerintem (de nyugodtan szóljon bele adatbázis-tudós is):
Van a könyvek/képek tábla (ami kezdetben üres), és van az írók/tekercsek tábla, ami szintén üres.
Azt kell megoldanod, hogy fel tudj vinni egy KÉPET, ami hivatkozik egy tekercsre. Mivel ezt nem az _id alapján, hanem listából választod ki, nem tudsz "üres" _id-t hozzárendelni (az ugyanis meg sem jelenik a listában); legfeljebb azt tudod jelezni, hogy NINCS hozzárendelve tekercs (már ha ez megengedett)
És persze kell egy "űrlap", ahol a tekercseket viszed fel.Én a helyedben először gyártanék egy felületet csak a képek táblához. Aztán ugyanezt kibővíteném egy független tekercsek táblával. Amikor ez kész, akkor megpróbálnám kiegészíteni azzal, hogy a képek listájában megjelennek a tekercsek, ill. a képek űrlapján is ki lehessen választani egy tekercset. Közben adni fogja magát, hogy miként kényelmes elrendezni, listákkal, tabokkal, fragmentekkel...
Mindenkitől bocs, hogy ennyit dumálok, de pont ugyanezen vergődtem végig, és pontosan tudom, hogy nem egyszerű. Mindenesetre fentebb már megosztottam a kódot, ahol én tartok; szerintem azért is érdemes kipróbálni (mármint a kész programot használni), mert gyorsan kiderül, hogy hol vannak azok a részek, ahol megbicsaklik az egész felület. Eredetileg én sem gondoltam egy csomó mindenre, ez csak a fejlesztés során fog kiderülni...
-
-
thon73
tag
válasz
eastsider
#2016
üzenetére
Na, igen. Ez pont így működik, ha fel van töltve az adatbázis. De hogy töltöd fel? Először uis. üres.
A képeket ugyanígy oldottam (volna) meg, jelenleg csak a hivatkozásoknál tartok - vagyis bármilyen file-t tudok tárolni, akár képet is.
((Mondjuk én lehet, h. tárolnék egy másolatot a képről, vagy egy thumbnail-t; külön helyen)) -
eastsider
nagyúr
nem egészen így lesz a programom
inkább úgy, hogy van egy író, aminek több könyve van, de egy könyvet csak egy ír
szóval rámegyek, hogy Gárdonyi Géza, és kijön az egri csillagok, meg az összes könyve Gárdonyinak, szóval pont fordítva írtad, ahogy én elképzeltem
azt tervesztem,
A eset:
hogy alapból az lenne, hogy alapból van ugye két tab, egyiken az összes író, ha átlapozok a másikra az behúzza az összes íróhoz tartozó összes könyvet, ugyanis lehet valaki csak a könyvek között szeretne böngészni, mert pl nem tudjam ki írta, csak a címét.. (nem túl életszerű példa, de a programomnál nagyon is)B eset:
rákattintok egy íróra és behúzza a az ahhoz az íróhoz tartozó könyveket (amiket ő írt). vagyis a JOINolt mezőket.utánanéztem kicsit, és lehet futásidőben cserélgetni a tabok tartalmát, úgy hogy a felhasználó ne vegye észre, csak a tartalom változzon (a fragment, de tabokon ne látszódjon semmi)
[link]
[link]más: foglalkoztál már kamerával készített kép SQLiteban való letárolásával (és lekérdezésével)?
szerintme BLOB helyett az útvonalat fogom letárolni (ahogy néztem ennek egyszerűbbnek kell lennie, meg hasznosabb is, minden fotós alkalmazás ezt használja). persze itt kezelni kell, ha kitörli a júzer a képet, de szerintem ez nem vészes -
thon73
tag
válasz
eastsider
#2014
üzenetére
A tabos elképzelés ott halt meg, hogy valójában ezek a listák egymásba lesznek öltve. Vegyünk egy idióta példát:
beírsz egy könyvet: Egri Csillagok
kiválasztod az írót: Gárdonyi Géza
de közben megnézed a többi könyvét: szűkített lista, benne Tüskevár
Jé, ezt nem is ő írta, kiválasztod az írót: Írók listája
Jé, nincs benne Fekete István
Író hozzáadása: Fekete István...
És így tovább a végtelenségig.Én csináltam egy ListFragmentet, és egy EditFragmentet. Most jön a következő probléma: ezek a különböző táblák esetében 90%-ban egyformák lesznek. Tehát csináltam egy General... Fragment-szettet, és ebből származtattam le az egyes tábláknak megfelelő tényleges Fragmenteket.
Akkor jött a következő probléma: ezek a spéci, egymásra hivatkozó mezők igazából új változótípusnak felelnek meg, ezért alkottam belőlük új változókat.
Hopp: és a végeredmény egy felxibilis rendszer, akárhány táblával, könnyen változtatható felépítéssel... viszont egy igen kövér, és sokrétű kóddal. És a legnagyobb vicc, hogy engem tulképp csak az export/import funkcionalitás érdekelt
Az a baj, hogy az sqlite nagyon jó. Az android nagyon jó. A kettőt összekötő híd viszont kompletten hiányzik. Mármint a UserInterface oldala, mert amúgy a program adatainak tárolására elég könnyen használható.
De ez csak a magánvéleményem.
És azért teszem itt közzé, mert a fentebb közzétett programhoz tartozik. -
eastsider
nagyúr
köszi!
értem mire gondolsz! szerintem így fogom csinálni, mert pont ezen gondolkoztam, hogy fogom megcsinálni a több féle listázást, néztem a metódusokat, de arra jutottam, hogy sehogy (csak simán átgondolva jutottam erre...), nyilván megoldható, csak szívás ahogy írtad. már össze is állt nagyjából a fejemben hogy fogom véghez vinni ezt.illetve mivan akkor, ha rámegyek egy íróra, átugrik a másik fragmentre, akkor ugye a hozzá tartozó (ID-jű) rekordokat hozná be, de mivan akkor, ha az még üres? akkor úgy lenne a jó ha alapból felhozná a dialogot, és az adott Foreign Keyjel létrehozhatna egy képet. bár ez szerintem simán megoldható egy getcount()-al...
illetve szerintem itt megpusztult a tabos elképzelésem, jól értem? mert így már 3 fragment kellene, az meg fura lenne így, vagyis nem lenne funkcionális
-
thon73
tag
válasz
eastsider
#2012
üzenetére
Én ezt egy cseppet átgondolnám.
Csak a saját elgondolásomat tudom közreadni. A tekercs/kép párosnál nekem az író/könyv jobban kézreáll, de ez tetszőlegesen behelyettesíthető...
Tehát:
Van az ÍRÓK tábla (vagy TEKERCS), ami nem hivatkozik senkire.
Van a KÖNYVEK tábla (vagy KÉPEK), ami hivatkozik EGYETLEN ÍRÓRA (vagy EGYETLEN TEKERCSRE)Ha ez utóbbit listában akarod megjeleníteni, akkor JOIN táblát érdemes használni, hogy lásd a könyv íróját vagy a kép tekercsét is egyúttal. Technikailag javaslom, hogy kiválasztásnál mindig egy új, részleteket mutató Fragmentet hozz létre. Ezt a Backstackra rakhatod, és akkor könnyű visszaugrani a listához. Egy másik elem kiválasztása nem ennek a Fragment-példánynak a mezőit változtatja, hanem létrehoz egy újat.
((Nehéz lesz megoldani egyébként az ÍRÓ (TEKERCS) kiválasztását innen - de nem lehetelen, csak dolgozni kell vele.)) A másik buktató a fragmentek egymás melletti/feletti megjelenítése, de az sem lehetetlen.Amikor viszont az ÍRÓK/TEKERCSEK listában vagy, akkor lehet, hogy szeretnéd megnézni, hogy mely könyveket írta/képeket tartalmazza. Na, ebben az esetben kell a KÖNYVEK/KÉPEK listát úgy megjeleníteni, hogy szűkítjük a listát a megfelelő íróra/tekercsre.
Hozzáteszem, hogy úgy tapasztaltam, majdnem minden megoldható az sqlite szintjén is, vagy a program szintjén is. Ha univerzáslis megoldásra van szükség, akkor szerintem az sqlite kihasználása gyorsabb, áttekinthetőbb, biztonságosabb; míg speciális esetekben (pl. statikus adathalmaz, speciális - ékezetes - keresések) érdemes/szükséges kódot írni, ami néha!! gyorsabb lehet.
Amúgy én pont ezen küzdöttem végig magam, nem minden pontja volt egyszerű, hibátlan és magától értetődő, de már egész jól működik. Szívesen segítek.
-
eastsider
nagyúr
közbe meglett a hiba. csak a nexus 7 2013 amin tesztelek nem dobott semmi exceptiont... a hiba az volt, hogy nem jó sorrendben volt a checkColumns metódus.... mostmár megy...
azt találtam ki, hogy a listview-n setOnItemClickListener-t állíok, és ekkor, ha egy elemre kattintok, akkor betöltse a hozzá tartozó elemeket ami egy másik táblából jön.
és mivel tabos az alkalmazásom onActivityCreatednél a másik tab kilistázza az összes lehetséges elemet, ami a másik táblák alatt van.. nem tudom jól megfogalmazni
szóval van egy filmek tábla, és van egy képek tábla, egy filmben van több kép, egy kép egy filmhez tarozik, de több kép tartozik egy filmhez -
Karma
félisten
válasz
eastsider
#2010
üzenetére
Breakpointot próbáltál már rakni az onActivityCreated metódusba, hogy lásd pontosan melyik sor robban?
Az "adott elem alá tartozó joinolt tábla" szerintem nem elég egzakt megfogalmazás... Legalábbis számomra nem egyértelmű, az biztos. Két táblát összejoinolsz, és WHERE feltétellel szűröd az elem kulcsa alapján?
-
eastsider
nagyúr
Sziasztok!
szenvedek még mindig a ContentProviderrel, és a loadermanagerrel
így néz ki a logcatom:
04-06 18:06:49.994: I/Contentxprovider(3652): onCreate
04-06 18:06:50.114: I/MAIN(3652): onCreate
04-06 18:06:50.144: V/TabsPagerAdapter(3652): clicked
04-06 18:06:50.174: I/FilmFragment(3652): onAttach
04-06 18:06:50.204: I/FilmFragment(3652): Loader<Cursor>
04-06 18:06:50.204: I/FilmFragment(3652): Loader<Cursor>
04-06 18:06:50.204: I/FilmFragment(3652): onActivityCreatedés ennyi... simán kilép, ki se írja az FC-t semmi...
van a contentproviderbe 2 tábla, ami joinolva van egymáshoz....
ez egy listfragment, és úgy terveztem, hogy a joinolt táblát egy másik listfragmenten jelenítem meg
szóval a OnListItemClick-re behozza a joinolt táblát, ami az adott item alá tartozik
lehet rosszul gondoltam, és ide más megoldás kell? ha igen,mi? -
thon73
tag
A broadcast-okkal megy is szépen, a példaprogramokban is broadcast-ok szerepelnek, csak éppen a rendszer által indítottak.
Lehet, hogy nekem is broadcastolni kellene az activity-ben, ha valami változik? Hm. Ez egy megfontolandó ötlet, köszi.Amúgy a Loader-ekkel én is csak ismerkedés szintjén "játszom". Van egy file-ban tárolt adathalmaz, aminek a beolvasása kb. 4-5 sec. Ezt akartam beletenni Loader-be. Ez - a felhasználó oldaláról - statikus adathalmaz, tehát nincs mit figyelni. Az én (tesztelő) oldalamról van lehetőség a változtatásra, de akkor újramenti a teljes megváltoztatott adatbázist (mert módosításkor az összefüggő adatok miatt a nagyrésze megváltozik). Ettől függetlenül arra voltam kíváncsi, hogy ha én változtatok a külső adatokon az Activity-ben (bocsánat -ból), akkor hogyan értesülhet erről a Loader.
A fenti (mostmár két) megoldáson kívül még egy érdekes osztályt találtam: a FileObserver-t. De az még bonyolultabbnak tűnt.Ami még gondnak tűnik nekem: végső soron a Loader-rel is be kell olvasnom mindent, ahhoz, hogy a lista eleje megjelenjen. Ez amúgy logikus (mert nem biztos, hogy a lista eleje töltődik be először), de a várakozási idő ugyanúgy megvan (csak pörög az óra...)
-
Karma
félisten
válasz
h1ght3chzor
#2006
üzenetére
Akkor az a JSON szempontjából igencsak irreleváns. Ha nem akarod parsolni ebben a programban, akkor akár magad is írhatsz egy toJSON metódust: majdnem ugyanolyan mint a toStringed, csak kapcsoszárójel van körülötte, a mezőnevek idézőjelben vannak, és vessző az elválasztó.
-
Karma
félisten
válasz
h1ght3chzor
#2004
üzenetére
Most akkor XX az valami osztály, vagy String? Az előbbi tagmondat erre, a thises történet amarra utal.
Ha osztályok, akkor használd a Gson nevű lubet, gyorsan érhetsz el vele jó eredményeket. Csak a listára kell hívnod egy Gson.toJson-t.
Ha stringek, igazából akkor is ugyanez, de nem ártana kicsit elgondolkodni az adatmodellen.
-
h1ght3chzor
őstag
Sziasztok!
Van egy List<XX> list-em, amiben így tárolom a dolgokat: "A: " + this.a+ "; B: " + this.b+ "...
Bluetooth-on keresztül kellene ezt átküldenem, hogyan érdemes belőle JSON-t csinálni?
Köszönöm!
Üdv -
Karma
félisten
-
thon73
tag
Ilyen nehezet kérdeztem, vagy mindenki békésen szunnyad az ebéd(ek) után?

Saját fejem törésével erre jutottam: Van itten egy olyan, hogy a LoaderManager-től le tudom kérdezni az aktív Loader-eket. Az Activity induláskor megnézi, hogy van-e Loader, s ha igen, akkor beregisztrálja magát (Uis. ilyenkor valaki már létrehozta a Loadert, pontosabban az előző megvalósulásunk hozta létre.) Záráskor szintúgy megnézi, csak éppen kiregisztrálja magát, - kiregisztrálTATja magát a megtalált Loader-rel az obszerválandók közül. Néha elgondolkodom, hogy télleg az Android Way a legegyenesebb-e??

Ha valaki látott már egyszerűbbet, akkor ne habozzon elmesélni...
Teljesen más: Tudja valaki mi az a Samsung File-Stor Gadget? A nem létező UMS kapcsolatom SGSII 4.1.2 alatt ezzel mégis létezik. Ha tudnám, mi ez, rátenném a tabletre is... A szívemhez közel áll a Mass-Storage gyorsasága, és a proxy szerver sem zavarja...
-
thon73
tag
Sziasztok!
Egy érdekes problémával küszködök. AsyncTaskLoader-t készítettem, ami működik is. DE! A háttérben álló adatok az Activity-n keresztül változtathatóak meg, tehát az AsyncTaskLoader-nek valahogy az Activity-t kellene figyelnie, hogy mikor következik be változás.
A gond akkor kezdődik, amikor elfordítom a készüléket, uis. ilyenkor egy új Activity keletkezik (és ettől a ponttól már ezt kellene figyelni, és a régit elengedni), ugyanakkor (ha jól értem a működést) az AsyncTaskLoader túlél, legfeljebb újraindul.
Hogyan illik ezt elegánsan megcsinálni?
Egy leegyszerűsített példában csak egy gombnyomással akarom szimulálni az adatváltozást. Az Observer az AsyncTaskLoader lenne, az Observable pedig az Activity (vagy a Button, de az előbbi egyszerűbb). Na de akkor hogyan tudná az Observable oldal magát kikapcsolni, meg aztán az új Activity-t visszakapcsolni?
Meg tudja ezt valaki mondani? Vagy valami más ötlet esetleg?
Új hozzászólás Aktív témák
- PlayStation 5
- One mobilszolgáltatások
- DUNE médialejátszók topicja
- EAFC 26
- Epic Store Ünnepi Ajándékozás - 7. nap: The Callisto Protocol
- Amlogic S905, S912 processzoros készülékek
- Windows 11
- Bond tovább pihen, késik a 007 First Light
- Intel Dual Core 2000 felhasználók barátságos offolós topikja
- Samsung kuponkunyeráló
- További aktív témák...
- BESZÁMÍTÁS! MSI Katana15 HX B14WEK notebook - i7 14650HX 16GB DDR5 1TB SSD nVidia RTX 5050 8GB WIN11
- Lenovo Thunderbolt 3 kábel (4X90U90617)
- Lenovo ThinkPad P15 Gen 2 Intel i7-11850H 32GB 1000GB Nvidia RTX A4000 1 év garancia
- Apple iPhone 13 128GB,Újszerű,Dobozával,12 hónap garanciával
- Dobozos! Xbox Series S 512 GB + kontroller 6 hó garancia, számlával!
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


) de telón eléggé durva volt

Egy ifben inicializálom és lemaradt az else ág....

Igazából sejtésem szerint én rontottam el valamit telepítésnél, környezeti változók is be vannak pedig állítva, és használok Eclipse-t és MoSync-et is, és azok tökéletesen működnek..Valaki nem tudna segiteni esetleg hogy mit nem állítottam be vagy rontottam el? Köszönöm előre a válaszokat




