- Apple Watch
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Honor Magic5 Pro - kamerák bűvöletében
- Mi nincs, grafén akku van: itt a Xiaomi 11T és 11T Pro
- Samsung Galaxy S21 és S21+ - húszra akartak lapot húzni
- Samsung Galaxy A54 - türelemjáték
- Netfone
- Mobil flották
- Fotók, videók mobillal
- One mobilszolgáltatások
Új hozzászólás Aktív témák
-
thon73
tag
válasz
Oppenheimer #3914 üzenetére
Vagyis simán tegyem be az onCreate-be (Activity esetén)? - és finish(), ha nem kapom meg.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #3739 üzenetére
Rájöttem, extendálom a view-ot, rajzolok a canvas-ra és kész.
-
Sianis
addikt
válasz
Oppenheimer #3739 üzenetére
Erre én is kíváncsi lennék.
-
WonderCSabo
félisten
válasz
Oppenheimer #3625 üzenetére
Ah, ezt nem vettem eszre. Majd meglatjuk, lehet hogy csak importaltak mindent.
-
WonderCSabo
félisten
válasz
Oppenheimer #3623 üzenetére
Mas forras? Mert a commit alapjan en ezt egyaltalan nem tudom kovetkeztetni.
Utananeztem, semmilyen szo nincs Java 8-rol, hanem arrol hogy OpenJDK-ra valt az Android a zart Java API helyett.
-
WonderCSabo
félisten
válasz
Oppenheimer #3576 üzenetére
Nem kell szenvedni. A Google APIs emulatorokon alapbol van Play Services.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #3576 üzenetére
mégse olyan sok szenvedés, több rémlett.
szerencsére csak a telefonomon nem működik az appomnak a gcm.
-
bucsupeti
senior tag
válasz
Oppenheimer #3574 üzenetére
köszi! tetszik a leirás alapján. hamarosan ki is próbálom!
-
Sianis
addikt
válasz
Oppenheimer #3468 üzenetére
De legalább biztos forrásból van.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #3420 üzenetére
-
WonderCSabo
félisten
válasz
Oppenheimer #3417 üzenetére
Ez valszeg bug lesz. Mondjuk egy próbát megér frissíteni az Android Gradle plugin verzióját legújabb 1.3.1-re.
-
Karma
félisten
válasz
Oppenheimer #3410 üzenetére
Miért pont BigInteger? A long miért nem elég, amit egyébként a Realm is támogatna mint primary key?
-
Oppenheimer
nagyúr
válasz
Oppenheimer #3410 üzenetére
Refaktorálok, de bassza meg a Realm.
-
automATIc
csendes tag
válasz
Oppenheimer #3398 üzenetére
Igazad van, viszont én randomszerűen szeretnék textet kiíratni és ezt nem tudom elképzelni máshogy csak,ha
valahová letárolom, majd kiolvasom, de ha esetleg tudsz valamit ami egy magamfajta nagyon kezdő számára is érthető azt szívesen fogadom. -
Karma
félisten
válasz
Oppenheimer #3406 üzenetére
Javítva lett a guide közben.
Nyilván az atombiztos megközelítés a constructor injection lenne, de az egyik Android komponensnél se pálya. Szerintem a package private mező a legkevésbé fájdalmas megoldás.
-
Karma
félisten
válasz
Oppenheimer #3404 üzenetére
Szóltam neki, az appContextModule valószínűleg kimaradt és kiegészíti vele a guide-ot. "Jogos kritika", idézem. Hamarosan...
A második felére én is tudok reagálni: szerintem nem sérül az OOP ettől (hiszen az objektumod a külvilágtól várja a dependenciái érkezését), mondjuk igazából a public helyett a package private bőven elég a Daggernek is.
Ez az ára annak, hogy egyszerűbb az egész injektor, mint mondjuk a Springé. Például a ButterKnife is csak public vagy package private mezőkkel hajlandó foglalkozni, hogy spóroljon a reflexióval a generált kódban.
-
Karma
félisten
válasz
Oppenheimer #3400 üzenetére
Ez a guide (amit egyébként az öcsém írt, szóval ha van bármi kérdés, gyorsan tudom delegálni) az onCreate metódusban injektál mezőkbe. Ez a megközelítés szerintem Fragmentekkel ugyanúgy működhet.
-
Gerzsi
tag
válasz
Oppenheimer #3398 üzenetére
valóban nem kell de ha érdekel akkor ISO 639-1 nyelvkódok
-
fatal`
titán
válasz
Oppenheimer #3385 üzenetére
Még nem, de erősen gondolkodom rajta, bár nem tudom, hogy milyen állapotban van a nyelv meg a compiler. A 15-ös IDEA-t mindenképpen megvárom.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #3385 üzenetére
Fogtam és konvertáltam az appomban minden Java fájlt Kotlin fájlra Android Studioval, és működik minden faszán. Most olvasgatom miket tud a nyelv, és eléggé bejön. Ha tippmixelnék, megtenném többszáz forintban, hogy 1-2 év múlva ez lesz a hivatalos nyelv az Androidhoz.
-
Karma
félisten
válasz
Oppenheimer #3378 üzenetére
Hát, azért mert vannak streamek, nem kell még a triviális dolgokra is azt használni
Attól hogy van egy jó kalapácsod, nem lesz mindenből szög.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #3377 üzenetére
Ja lol, a streamsupport is működik, de az mégrosszabb.
StreamSupport.stream()-et kell használni.
-
Karma
félisten
válasz
Oppenheimer #3357 üzenetére
Azért elárulhatnád, hátha más is kerül hasonló szituációba
-
Oppenheimer
nagyúr
válasz
Oppenheimer #3356 üzenetére
Megvan, fasz voltam!
-
Karma
félisten
válasz
Oppenheimer #3342 üzenetére
Mi biztosan jobban tudjuk, mint a Google
Egyébként itt a kapcsolódó forráskód, ez biztosan nem hazudik. -
rgeorge
addikt
válasz
Oppenheimer #3298 üzenetére
Vajon mennyibe fog ez kerülni? A már említett Xamarin nem olcsó.
-
Zedz
addikt
válasz
Oppenheimer #3298 üzenetére
Szerintem ha a fejlesztés sebessége a lényeg akkor elég lehet a Xamarin megoldása, vagy valamilyen Javascriptes keretrendszer.
-
lord.lakli
őstag
válasz
Oppenheimer #3298 üzenetére
Kicsit furcsa cikk. Hibrid megoldás az apache cordova és társai. Van MS által is preferált Xamarin, ami natív kódot fordít. iOS esetén trükk, hogy fordításhoz mindenképpen kell egy Mac. Ezen semmilyen intel sem segít.
-
lord.lakli
őstag
válasz
Oppenheimer #3281 üzenetére
Vagy csak így akar ingress-ben egyszerre több acc-al játszani
-
Karma
félisten
válasz
Oppenheimer #3272 üzenetére
Az OpenShiftnél nem nagyon tudod olcsóbban kihozni, ingyenesen futtathatsz egy kis gépet. Én oda szoktam fellőni a Boot projekteket általában.Bronze módban (ami ingyen van, de már meg kellett adni hozzá a bankkártyádat) már nem alszik el a gép soha; sima freeben inaktivitás esetén leáll és az első bejövő hívásnál ébred fel - késleltetve a választ.
Már másfél hónapja mondjuk nem néztem, de a Java 8-at kézzel kellett megoldani, van rá bejáratott házi sablonom. De egy kicsit több munka, nem egészen plug and play.
A Heroku 7 dolláros hobby dynoja se rossz, bár 7 dollárral több, mint az előbbi példa
Ott a free dyno sajnos többet alszik, kötelezően. Viszont frissebbek a buildpackek és amúgy nagyon király az egész.
-
Karma
félisten
válasz
Oppenheimer #3268 üzenetére
Valószínűleg ha getColor hívásokat használtál volna az eredeti formában a resource ID-k körül, akkor az is működött volna. De így mindenképp tisztább.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #3267 üzenetére
megoldás: így kell színt állítani:
swipeRefreshLayout.setColorSchemeResources(
android.R.color.holo_blue_light,
android.R.color.holo_purple,
android.R.color.holo_green_light,
android.R.color.holo_red_light
); -
WonderCSabo
félisten
válasz
Oppenheimer #3245 üzenetére
Az executeAsync egy AyncTask-ot hoz létre, és az onCompleted metódst a main threaden hívja meg.
-
Oppenheimer
nagyúr
válasz
Oppenheimer #3245 üzenetére
Megnéztem, azon fut, de nem értem miért
-
WonderCSabo
félisten
válasz
Oppenheimer #3243 üzenetére
Aha. Inkább a github repo oldalát nézdd meg az friss. Az annotációkat is támogató, még gyorsabb verzió meg itt.
-
Karma
félisten
válasz
Oppenheimer #3238 üzenetére
Megoldható persze, csak a kérdés nem jó. A ThreadEnforcer.ANY konstruktorparaméter is kell hozzá — ez biztosítja, hogy a buszra bármely szálról lehessen üzenetet küldeni —, viszont a szálak közötti átpasszolást neked kell megoldanod. A legegyszerűbb ehhez a Bus osztályból leszármaztatni. Mindjárt megkeresem a megfelelő kódot, csak mobilról nem gyors
Meg is van: [link]
-
Karma
félisten
válasz
Oppenheimer #3234 üzenetére
Retrofit über alles. Nálam a 4R a favorit, és minden új projekt alapja (Retrofit, Retrolambda, Realm és RxJava)
-
bucsupeti
senior tag
válasz
Oppenheimer #3230 üzenetére
kösz! Nem tudom miért a signing-nél nézelődtem és nem találtam rá erre...
Megvezettem saját magam...
-
WonderCSabo
félisten
válasz
Oppenheimer #3214 üzenetére
Bocs, nem ismerem a use-caset, igazad van, nem kéne így tanácsot adnom ezzel kapcsolatban.
Két dolgot tehetsz:
* custom Preference osztály, amiben megírod, hogy benne legyen a Facebook button, majd a preferences.xml fájlba berakod
* nem rakod be az xml-be, hanem addPreferencesFromResorce hívása után kódban hozzáadod a VIew-t.Az első megoldás sztem sokkal szebb.
-
Karma
félisten
válasz
Oppenheimer #3218 üzenetére
Azt semmiképp se tartom jó ötletnek, hogy a MainActivity közvetlenül ismerje az ExceptionsFragment példányt. Mivel a ViewPager is virtualizál (azaz a ListViewhoz hasonlóan csak a látható vagy szomszédos viewkat tartja életben), elég kusza helyzetek alakulhatnak ki.
Hogy ezt hogyan kerüld el, van pár lehetőség.
Az első a klasszikus jávás Listener minta. Az activityben definiálsz egy Listener interfészt, amit a fragment megvalósít, valamint egy kis ceremóniát, hogy fel lehessen rá iratkozni. A fragment onAttach metódusában regisztrál, onDetachban pedig deregisztrál - ameddig össze van kötve, az activity tud neki jelezni. Mondjuk a konkrét activity osztályt is elfedném akkor már.
ExceptionChangeListener.java:
public interface ExceptionChangeListener {
void onExceptionsChanged();
}ExceptionSource.java:
public interface ExceptionSource {
boolean addExceptionChangeListener(ExceptionChangeListener listener);
boolean removeExceptionChangeListener(ExceptionChangeListener listener);
}MainActivity.java:
public class MainActivity extends AppCompatActivity implements ExceptionSource {
private final Set<ExceptionChangeListener> mListeners = new HashSet<ExceptionChangeListener>();
...
public boolean addExceptionChangeListener(ExceptionChangeListener listener) {
return mListeners.add(listener);
}
public boolean removeExceptionChangeListener(ExceptionChangeListener listener) {
return mListeners.remove(listener);
}
... amikor módosítottad a listát, hívd meg ezt ...
private void notifyListeners() {
for (ExceptionChangeListener listener : mListeners) {
listener.onExceptionsChanged();
}
}
}ExceptionsFragment.java:
public class ExceptionsFragment extends Fragment implements ExceptionChangeListener {
@Override
public void onAttach (Activity activity) {
super.onAttach(activity);
if (activity instanceof ExceptionSource) {
((ExceptionSource)activity).addExceptionChangeListener(this);
}
}
@Override
public void onDetach() {
if (getActivity() instanceof ExceptionSource) {
((ExceptionSource)getActivity()).removeExceptionChangeListener(this);
}
super.onDetach();
}
@Override
public void onExceptionsChanged() {
adapter.notifyDataSetChanged();
}
}Huh, ez elég hosszú lett. A másik kettőbe inkább nem megyek bele így nyilvánosan kód szinten.
A második az lenne, hogy a fragmented onAttach/onDetach időben egy BroadcastReceivert indít el, az activity pedig Intenteket dobál, ha változás van. Ez lehet közvetlenül a sendBroadcast metódussal, vagy LocalBroadcastManagerrel. Lazább csatolás, de elég sok ceremónia.
A harmadik pedig egy event bus bevezetése (pl. Otto), ahol a logika ugyanaz mint a másodikban, csak kevesebb extra kód (eltekintve a lib dependenciától). Én így 2015-ben egyébként ezt az utat javaslom.
-
Karma
félisten
válasz
Oppenheimer #3216 üzenetére
Munkatársaim rendszeresen kérdezik; hát nem tudom
Fura gyerek voltam mindig. -
Karma
félisten
válasz
Oppenheimer #3214 üzenetére
Azért sípol, mert nem használod ki a ListView újrahasznosító mechanizmusát, hanem folyamatosan új Viewkat fújatsz fel. Feltételezem, a warning buborék két findViewById hívást takar.
A tökéletes megoldásnak két lépése van, ebből az első a kritikus.
1) Használd a convertView paramétert! Ha nem null, akkor az egy olyan cella, ami kicsúszott a képből és így nincs rá szükség. Ebben az esetben az új cella létrehozása teljesen felesleges, ezt a viewt kellene bekonfigurálnod az új adatokhoz, megspórolva a példányosítást és a GC-zést.
View rowView = convertView != null
? convertView
: LayoutInflater.from(parent.getContext()).inflate(R.layout.exc_row_layout, parent, false);2) A ViewHolder minta ehhez képest már apróság, a findViewById hívásokat lehet megspórolni vele. Egy olyan custom classról van szó, aminek tagváltozóiba elteszed a TextViewk referenciáit (tehát gyártott viewnként egyszer kell keresni), a holdert pedig beállítod Tagként a cellán. Ha a convertView nem null, akkor elkéred a tagből a holdert, és azonnal írhatod az új adatokat.
@Override
public View getView(int position, View convertView, ViewGroup parent) {
RowViewHolder viewHolder;
if (convertView == null) {
convertView = ... inflate ...;
viewHolder = new RowViewHolder(convertView);
convertView.setTag(viewHolder);
} else {
viewHolder = (RowViewHolder)convertView.getTag();
}
... values tömb ...
viewHolder.bindRow(values[position]);
return convertView;
}
... valahol lejjebb ...
private static class RowViewHolder {
private TextView nameView;
private TextView descView;
public RowViewHolder(View rowView) {
nameView = rowView.findViewById(...);
descView = rowView.findViewById(...);
}
public void bindRow(Exception model) {
nameView.setText(model.getName());
descView.setText(model.getDescription());
}
} -
WonderCSabo
félisten
válasz
Oppenheimer #3209 üzenetére
Miért akarnál te a beállításokban kilépni a facebookról?
-
WonderCSabo
félisten
válasz
Oppenheimer #3207 üzenetére
Mert az nem layout, hanem még magasabb szintű reprezentáció, illetve preference specifikus paramêterek, konvencionális felépítéssel. Oda nem való az a gomb, de irhatsz hozzà sajàt preference osztâlyt ha akarsz.
-
sztanozs
veterán
válasz
Oppenheimer #3203 üzenetére
Mármint az egész koncepciót nem értem. Ez valami vicces program lenne, vagy mi?
Milyen további funkciók lehetnek? Ha már vicces hibaüzenetek, az alábbi funkciókra biztos lehet valamit kitalálni:
- elemlámpa- geofencing
- wifi keresés
- mobil jel elvesztése
- touch műveletek (too many fingers ontouchscreenkeyboard error megvan?)
- adott program futása (túl sokáig, vagy túl sokszor)mod: Ja most látoma geofencing volt az eredetiben is...
-
sztanozs
veterán
válasz
Oppenheimer #3201 üzenetére
wut?
Új hozzászólás Aktív témák
Hirdetés
- DDR5 GAMER PC: Új RYZEN 7 8700F/9700X/9800X3D +RTX 4060/5060/4070/5070 +16-64GB DDR5! GAR/SZÁMLA!
- Dell Latitude 7410 Strapabíró Ütésálló Profi Ultrabook 14" -80% i7-10610U 16/512 FHD
- Szép! HP EliteBook 850 G8 Fémházas Multimédiás Laptop 15,6" -65% i7-1185G7 32/512 Iris Xe FHD Magyar
- HP EliteBook 850 G8 Fémházas Multimédiás Laptop 15,6" -65% i7-1185G7 8/512 Iris Xe FHD Magyar
- 512 Gb-os NVME-k
- Csere-Beszámítás! Custom vizes számítógép játékra! I7 12700KF / RTX 3090 / 32GB DDR5 / 1TB SSD
- ÁRGARANCIA!Épített KomPhone i9 14900KF 32/64GB RAM RTX 5070Ti 16GB GAMER PC termékbeszámítással
- ÁRGARANCIA! Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5090 32GB GAMER PC termékbeszámítással
- Bomba ár! HP ZBook FireFly G8 - i7 I 16GB I 512SSD I 15,6" FHD Touch I Nvidia 4GB I Cam I W11 I Gar!
- Telefon felvásárlás!! iPhone 15/iPhone 15 Plus/iPhone 15 Pro/iPhone 15 Pro Max
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Promenade Publishing House Kft.
Város: Budapest