Hirdetés
- Mini PC
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- Kellemes karácsonyi ünnepeket!
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- SSD kibeszélő
- Soundbar, soundplate, hangprojektor
- Akciókamerák
- Windowsos tablet topic
- HiFi műszaki szemmel - sztereó hangrendszerek
Új hozzászólás Aktív témák
-
#39560925
törölt tag
-
Zedz
addikt
Arra gondolok, hogy amikor előre kiválasztom, akkor belegenerál az Activitybe egy csomó mindent. Ezeket honnan tudom megszerezni? Most tanulom csak a dolgot, és a Mainnek Nav típus helyett Blankot adtam meg. Inkább újra kezdtem a projektet, de kíváncsi vagyok ezt kézzel hogyan lehet később forkolni.
-
-
Zedz
addikt
Sziasztok,
Ha a MainActivityt Blankként hoztam létre, tudok ezen később változtatni? Mondjuk ha Navigation típusúra szeretném variálni, akkor mit kell ehhez tennem?
-
thon73
tag
Egy fél napos keresgélés után a következőt találtam:
A build.gradle file-ban a classpath 'com.android.tools.build:gradle:1.0.0' bejegyzésben helytelen a verziószám, és magától nem javítja. Kézzel kell kicserélni 1.1.0-re.
Láss csodát, azóta működik!
Gondoltam, megosztom, hátha valakinek még hasznára lesz. Úgy tűnik, ez a hiba nem túl gyakran jelentkezik. -
thon73
tag
Technikai segítséget szeretnék kérni:
Android Studio 1.3 frissítés után a build leáll a következő hibával:"...
> Could not get resource 'https://jcenter.bintray.com/com/android/tools/build/gradle/1.0.0/gradle-1.0.0.pom'.
> Could not HEAD 'https://jcenter.bintray.com/com/android/tools/build/gradle/1.0.0/gradle-1.0.0.pom'.
> Connection to https://jcenter.bintray.com refused"Először proxy hibára gyanakodtam, de közvetlenül sem tudom a kívánt oldalt megnyitni. Pontosabban hol meg tudom, hol meg nem.
Mit lehet ilyenkor tenni?
Előre is köszönöm. -
Zedz
addikt
Sziasztok,
Az miért lehet, hogy alapból más a sima input és a password input hint betűtípusa? Droid bug?
-
Zedz
addikt
Sziasztok,
Android Studioban nem látom a drawable mappa subfoldereit. Hiába szinkronizálom újra a projektet, semmi nem jelenik meg benne, pedig file explorerben már behúztam a megfelelő dolgokat. Ez bug, beállítás, egyéb?

-
#39560925
törölt tag
Sajnos nincs sok időm foglalkozni az appal, de innen letölthető egy kezdetleges változata. A szerver DigitalOceanon fut egyénként. A forráskód itt van, hogy lássátok, nem csinál semmi rosszat.

-
Karma
félisten
Az ObjectAnimator a barátod. Az XML-es megoldás is ilyen objektumokat állít össze, ez a guide meg elég alaposan végigmondja az elméletet és a gyakorlatot is.
-
Sziasztok, a múltkori udp videóindításos dolgot nagyjából sikerült abszolválnom, most egy másik taskot kéne megoldanom.
Van egy kép amit forgatnom kell a tablet irányától függően. Faszán tudom forgatni, ezzel nincs is probléma, csak animálni szeretném. Erre csak ilyen xml-es animációkat láttam, de azokkal ma abaj, hogy pl. fixen 15 fokról 90 fokra forgat. Van erre valami megoldás vagy írnom kell 300 féle rotate xml-t?

-
Sehol nem találok működő TCP server-kliens példát/tutorialt, esetleg tud valaki valami jót, amit tutira helyes?
-
Elhihetitek hogy nem en talaltam ki. A fonokom ezt keri, nekem meg kell csinalni. Mit javasoltok, hogy juthatna at gyorsan a serverrol a kliensre az informacio? Vezetek nelkul sehogy? Egyaltalan ossze lehet kotni kabellel a tableteket? Vagy hogyan komunikaljanak, barmit meghallgatok, de mar teljesen tanacstalan vagyok.
TCP-nel hogy kene? Az nem csak egy kapcsolatot tud egyszerre fenntartani? Nekem ugye az kell, hogy tobb tabletre erkezzen meg az info, ezert valasztottam az udp-t. TCP multicast kizarva, azt nem tudja minden androidos tablet

Ja es az se biztos hogy azonos tipusu tableteken fog futni a kliens szoftver

Barmilyen bonyolult megoldas erdekel, csak mukodjon

-
Sziasztok! Segítségre van szükségem. Van egy appom, vagyis technikailag kettő. Az egyik a server, amit egy GPS-el ellátott androidos készülékre telepítünk. Adott továbbá X kliens tablet, amikben nincs GPS. Van egy power bankról működtetett router, ez biztosítja a hálózatot. A feladat az, hogy a server készülék GPS-éből kapott koordinátákat a lehet leggyorsabban megkapják a kliensek (lehetőleg egyszerre).
Merre kéne elindulnom? UDP-vel próbálkoztam, de össze vissza jönnek meg a csomagok, néha elveszik 10-ből 8, néha megjön az összes, néha késik 3mp-et aztán jön meg egyszerre 10...
Minden ötletre vevő vagyok.
Előre is köszönöm.

-
DaveBishop
csendes tag
Sziasztok!
Android és iOS programozásban, cloud rendszerek kiépítésében jártas fejlesztőt keresünk Győrben egy újonnan induló project megvalósításához. Akár egyetemi hallgatók, pályakezdők jelentkezését is várjuk.
Érdeklődni privát üzenetben.
-
Karma
félisten
válasz
#39560925
#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. -
#39560925
törölt tag
Mi a legolcsóbb megoldás a Spring Boot-ot és MySQL-t használó backendem felhőben, vagy szerveren futtatásához?
-
WonderCSabo
félisten
FragmentStatePagerAdatpert használjál, és segítségével töltsd vissza az állapotot.
-
Gerzsi
tag
Sziasztok
Azt hogy tudom megoldani hogy van egy rakat fragment és csak három van előre betöltve és mikor visszagörgetek az elejére akkor újra létrehozza és az ottani változások így eltűnnek és nem szeretném hogy eltűnjenek ha vissza lapozok. Hogy tudom ezt megoldani? -
#39560925
törölt tag
SwipeRefreshLayout-nak a spinnere nálam üres. Hogyan tudnám elérni, hogy pörögjön benne a cuccos?
Kód:
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_exceptions, null);
swipeRefreshLayout = (SwipeRefreshLayout) view.findViewById(R.id.swipe_container);
swipeRefreshLayout.setOnRefreshListener(this);
swipeRefreshLayout.setSize(SwipeRefreshLayout.LARGE);
swipeRefreshLayout.setColorSchemeColors(
android.R.color.holo_blue_light,
android.R.color.holo_purple,
android.R.color.holo_green_light,
android.R.color.holo_red_light
);
return view;
}@Override
public void onRefresh() {
swipeRefreshLayout.setRefreshing(true);
BackendConnector.getInstance().refreshExceptions(this);
}
@Override
public void onExceptionRefreshFinished() {
swipeRefreshLayout.setRefreshing(false);
} -
Sziasztok! Van egy appom, amiben videókat is lehet lejátszani SD kártyáról. A problémám az, hogy egy 2 perces fullHD videónál totál belaggol az egész tablet amin fut a szoftver és az Eclipse logcat-en meg folyamatosan azt látom, hogy memóriát szabadít fel... Viszont ugyan ezt a videót sima galéria appal megnyitva viszi a tablet minden probléma nélkül.
video = (VideoView) findViewById(R.id.video);
if (SharedData.showMediacontroller) {
MediaController mcc = new MediaController(MediaActivity.this);
mcc.setAnchorView(video);
video.setMediaController(mcc);
}
try {
video.setVideoPath(actBlock.getMediaFilename());
} catch (Exception e) {
SharedData.log.write("MediaActivity.java - onCreate method - general zone video file error");
e.printStackTrace();
SharedData.isMediaBlockPlaying = false;
finish();
}
new VideoStarter().start();
video.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
SharedData.isMediaBlockPlaying = false;
finish();
overridePendingTransition(R.anim.fade_in, R.anim.fade_out);
}
});A videókezelésben van hiba vagy a program más részében keressem?

-
kemkriszt98
tag
Sziasztok,
Facebook messengerhez fejlesztett alkalmazás mitől jelenik meg a messengerben? Sehol nem találok arra utaló információt, hogy ezt nekem kellene valahogy hozzáadni vagy mi. -
thon73
tag
Bocs, még mindig a WACOM által okozott ACTION_CANCEL-nél vagyok leragadva.
Sehol nem találok info-t arról, hogy miként működik az ACTION_CANCEL multitouch esetén. Ugyanis ilyenkor (vagyis, ha az SPen közelít) egyetlen eventben van összefoglalva az összes touch ACTION_CANCEL megjelelöléssel. Más módon pedig nem tudtam ACTION_CANCEL-t előidézni.
Kérdésem:
AZ ACTION_CANCEL esetén minden multitouch érintés megszakad, avagy lehet olyan szituáció, hogy csak egyetlen érintés szakad meg, míg a többi továbbmegy? (Vagyis ACTION_CANCEL esetén ki kell-e értékelnem az összes event-ben lévő érintést, vagy simán eldobhatom az összeset? Köszönöm! -
horbala
újonc
Sziasztok,
Induló Startup cég Android fejlesztőt keres.
Amennyiben érdekel a lehetőség kérlek írj.
Köszönöm,
B. -
thon73
tag
Köszi! Nyilván azért, hogy rátehénkedhessek közben az érintőpanelre

Multitouch esetén viszont ez érdekes kérdéseket vet fel, mert lehet, hogy a felhasználó ujja még ott van a módosító billentyűn, amivel a stylus érintését módosítaná. Több billentyűzeten megnéztem, ez a probléma megvan - és technikailag nyilván megoldhatatlan. Majd kigondolom, hogy melyik feltételezés (tartja/elengedi) okozza a kisebb hibát... -
thon73
tag
Multitouch kapcsán tapasztaltam, hogy ha stylussal (Note) közelítek, akkor minden addigi touch megszakad egy ACTION_CANCEL kóddal.
Ez tartalmaz egy pozíciót is, ami viszont y irányban kb. 100-zal el van tolva.
Tapasztalta ezt már valaki?((Csak kíváncsi vagyok. Egyébként kihagytam a cancel mellett a pozíció ellenőrzést, ami előtte benne volt - de ettől még érdekelne, hogy az én készülékemben van a hiba, vagy ez általános android tulajdonság...))
-
Bozek
nagyúr
válasz
WonderCSabo
#3254
üzenetére
Mondjuk többet segítettél volna, ha linkeled is a topic-ot.

-
Gerzsi
tag
Mennyiért melóztok android fejlesztőként ?
-
WonderCSabo
félisten
-
Benex
senior tag
válasz
WonderCSabo
#3249
üzenetére
Mielőtt nagyon leszolnátok, ha nagyon nagy butaságot irtam , első böngésző probálkozásom.
public class MainActivity extends Activity {
private WebView webview;
private Button btn;
private EditText url;
private String url_adress;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.url = (EditText)findViewById(R.id.url);
this.url_adress = url.getText().toString();
this.btn = (Button)findViewById(R.id.load_btn);
this.webview = (WebView)findViewById(R.id.webView);
WebSettings settings = webview.getSettings();
settings.setJavaScriptEnabled(true);
// webview.setScrollBarStyle(WebView.SCROLLBARS_OUTSIDE_OVERLAY);
webview.setWebViewClient(new WebClientClass());
webview.loadUrl("http://www.google.com");
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
webview.loadUrl(url_adress);
}
});
}
}
class WebClientClass extends WebViewClient
{
@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
super.onPageStarted(view, url, favicon);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
view.loadUrl(url);
return true;
}
}Illetve a gomb megnyomása után , a következőt kapom , amire interneten nem találtam olyan választ ami megoldaná
W/BindingManager﹕ Cannot call determinedVisibility() - never saw a connection for the pid: 13458 -
Benex
senior tag
Sziasztok
Egy számotokra szerintem egyszerű kérdésem lenne, de nekem valamiért nem megy. Csinálni szeretnék egy végtelenül egyszerű böngészőt. webview.loadUrl("http://exampla.hu"); így tökéletesen betölti a webview-om az oldalt , ha így statikusan adom meg neki a címet, de szeretném, ha egy edittextből kapott string alapján töltené be az oldalt, egy gomb lenyomása után. Ez valamiért nem történik meg és még hiba üzenetet se kapok , hogy miért.
Ha tudnátok itt segiteni , vagy valami oldalt belinkelni ami leirja szépen, hogy egy edittextből kapott stringet töltsön be , megköszönném. Már 2 napja probálkozok és valamiért nem jön össze.Előre köszönöm a segítséget.

-
#39560925
törölt tag
Ok, ezt nem értem.
public static void testEventBus(final Set<ExceptionChangeListener> exceptionChangeListeners) {
GraphRequest request = GraphRequest.newMyFriendsRequest(accessToken, new GraphRequest.GraphJSONArrayCallback() {
@Override
public void onCompleted(JSONArray jsonArray, GraphResponse graphResponse) {
// request successfully returned
if (graphResponse.getError() == null) {
Log.d("response length: ", Integer.toString(jsonArray.length()));
Set<Friend> friends = new TreeSet<>(new Friend.NameComparator());
for (ExceptionChangeListener listener : exceptionChangeListeners) {
listener.onExceptionsChanged();
}
if (firstStart) {
friendListListener.onFirstAppStart(friends);
} else {
friendListListener.onAppStart(friends);
}
}
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,picture");
request.setParameters(parameters);
request.executeAsync();
}Facebook doksiból:
executeAsync():
Executes the request asynchronously. This function will return immediately, and the request will be processed on a separate thread. In order to process result of a request, or determine whether a request succeeded or failed, a callback must be specified (see the setCallback.setCallback(Callback) method).This should only be called from the UI thread.
Gombnyomásra meghívom az executeAsync()-et, meghívódik az onCompleted(), abban meghívom notifyDataSetChanged()-et, és nem áll le kivétellel az alkalmazás. Ez a callback a main szálon fut, vagy micsoda? Hogy lehet az?
-
#39560925
törölt tag
válasz
WonderCSabo
#3241
üzenetére
-
Karma
félisten
válasz
WonderCSabo
#3241
üzenetére
Mármint a Guava EventBusról van szó, vagy lemaradtam valamitől?

-
WonderCSabo
félisten
-
Karma
félisten
válasz
#39560925
#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]
-
#39560925
törölt tag
Most, hogy elkezdtem beépíteni mindenféle aszinkron hívásokat az alkalmazásba, felmerült a gondolat, hogyha történik egy aszinkon callback, és abból a callbackból értesíteni akarok különböző lista adaptereket az adataik megváltozásáról (notifyDataSetChanged), akkor azt hogyan tehetem meg ebben a szálban. Elvileg notifyDataSetChanged csak UI szálból hívható meg. Például itt ez a Facebook Graph Request. Ennek az onCompleted callback-je nem a főszálon fut. A benne meghívott onFirstAppStart metódusból szeretnék értesíteni egy adaptert. Ez Otto-val megoldható? Úgy látom ehhez az SO kérdéshez hasonló a problémám, de erre nem érkezett sok válasz.
-
bucsupeti
senior tag
Azt meg tudja valaki mondani hogy milyen "relációban" van az AndroidManifest.xml fájlban megadható versionCode és versionName illetve a build.gradle fájlban megadott versionCode és versionName? Ugyan ez érdekel a minSdkVersion és targetSdkVersion tekintetében is.
-
#39560925
törölt tag
-
bucsupeti
senior tag
Elérkezett az idő hogy a Play-re töltsek fel egy appot. Olvasok minden félét mindenhol, de igazából nem látom át teljesen ennek az egésznek a folyamatát.
Android Studio-val dolgozom, minden beállítás alapértelmezett.
Eddig amit készítettem APK-t az úgy "terítettem" hogy kimásoltam a projekt apk/build/outputs/apk/app-debug.apk fájlt, átneveztem és ezt adtam oda azoknak akik használják.A kérdésem hogy innen hogyan jutok el a publikálásig. Gondolom kell (kell?) hogy alá legyen írva. Ezután hogyan buildelek? Kell valami egyéb beállítás a gradle-nak? Ha igen akkor mi?
-
#39560925
törölt tag
válasz
WonderCSabo
#3223
üzenetére
Köszi! Ez a dolog egyelőre el van odázva, de ha megcsinálom a settings menüt, akkor még visszaolvasom ezt a hsz-t.
-
repvez
addikt
Ha az a 2 éves ért angolul és elég értelmes akkor talán menne

DE forditott helyzetre is igaz, hogy számomra is ugy kéne elmagyarázni, hogy megértsem .
Eddg egyszer sikerült C++ ban egy képlet kiszámolós progit sima dosos ablakban karakteres modban futathatót készitenem. a cin és cout parancsok használatával. -
Karma
félisten
Egyáltalán nem nehéz, ha az alapfogalmakkal tisztában vagy. Ha minden egyes képernyő egy activity vagy fragment, a válaszok alapján meg mindig a megfelelőt indítod, áttekinthetetlen de legalább triviális eredményt kaphatsz. De van még egy pár variáció az általánosabb, szebb megoldásra.
Mondjuk ehhez tudni kell, mi fán terem a Java és mik az Android alkalmazások alapelemei és alapműködései. Nem tudom, ilyen háttérrel hogy lehetne kezdeni. Affinitásod van hozzá legalább? El tudnád magyarázni a probléma megoldását lépésről lépésre egy külföldi kétévesnek?
-
repvez
addikt
Mennyire nehéz csinálni egy olyan aplikációt ami ilyen flowchartot szimulál le?
[link]
Tehát, hogy amikor elágazáshoz érkezik akkor feladja a választási leheőségeket egy gombként és annak megfelelöen kérdez a következő eseményre?Nem pont ezt akarom amia képen van,de valami haszonlót csak egy kicsit több elágazással és válasszal
Még nem programoztam sehol semmiben, ugyhogy az is érdekelne, hogy androidhoz mi kéne ehhez.
-
WonderCSabo
félisten
válasz
#39560925
#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.
-
#39560925
törölt tag
Kicsit más: Custom View-t szeretnék használni ezzel a jó kis API-val, de nem tudom hogyan tudnék a Layoutban lévő TextView-eknek beállítani az értékét. Egy gomb eseménykezelőjében akarok feldobni egy material design-jú dialog albakot, saját layout-tal.
-
#39560925
törölt tag
Huh, köszi ismét a részletes segítséget.
Egyébként azt akarom majd megvalósítani, hogy a legutolsó 30 exceptiont tárolom az eszköz SharedPreferences-ében, és ha lejjebb görget a felhasználó, akkor elkezdi fetchelni a többit a szeverről. Ha van neki 1000 exception-je tárolva a szerveren, és elkezd lefelé görgetni, mint állat, akkor mennyit cellát érdemes egyszerre a memóriában tartani?A fentiek ismeretében melyik megoldást javaslod?
-
Karma
félisten
Most esett le amúgy, hogy SharedPreferencest használsz az adatok tárolására, így az egész litániámra semmi szükség. Fel tudsz iratkozni az SP változásokra - ha ezt használod a fragment onAttach/onDetachban, kész is vagy.
-
Karma
félisten
válasz
#39560925
#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.
-
#39560925
törölt tag
Ha megváltoznak az adatok, hogyan tudom elérni a fragmentet, amiben a lista van? Jelenleg így épül fel az UI:
MainActivity így néz ki:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context="com.attilapalf.exceptional.ui.main.MainActivity">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v4.view.PagerTabStrip
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
/>
</android.support.v4.view.ViewPager>
</RelativeLayout>Tehát ez egy lapozható felület, 3 oldala van. Itt van a MainPagerAdapter kódja:
public class MainPagerAdapter extends FragmentPagerAdapter {
public MainPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
switch (position) {
case 0:
return new MainFragment();
case 1:
return new ExceptionsFragment();
case 2:
return new FriendsFragment();
default:
return new MainFragment();
}
}
@Override
public int getCount() {
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "Main";
case 1:
return "My Exceptions";
case 2:
return "My Friends";
default:
return "unknown";
}
}
}Az ExceptionsFragment kódja pedig itt van. A notifyDatasetChanged() metódusát szeretném valahogy meghívni a MainActivity throwMeExcClicked(View) metódusban:
private static String makeFragmentName(int viewPagerId, int index) {
return "android:switcher:" + viewPagerId + ":" + index;
}
public void throwMeExcClicked(View view) {
Exception e = Exception.getRandomException();
synchronized (this) {
if (mLocation == null) {
setLocationExceptions.add(e);
} else {
e.setLocation(mLocation);
exceptionPreferences.addException(e);
}
}
String fragmentTag = makeFragmentName(R.id.pager, 1);
FragmentManager fragmentManager = getFragmentManager();
Fragment eFrag = fragmentManager.findFragmentByTag(fragmentTag);
// jó volna valahogy elérni az ExceptionsFragmentet!!!
} -
Karma
félisten
válasz
#39560925
#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());
}
} -
#39560925
törölt tag
válasz
WonderCSabo
#3213
üzenetére
-
zeon.hu
nagyúr
használok E-robotot, ismerem.
a gond az, hogy voip telefonáláskor szeretném tiltani a bejövő gsm hívásokat, de mivel nem mtk soc, ezért nem megoldható sem a sim slot leválasztás, sem a gsm tiltás (nem találtam eddig működő megoldást). így voip közben a bejövő hívás mindenképpen fókuszba kerül,akkor is, ha tiltom/elutasítom automatikusan, viszont a voip kliensek fókuszból kikerülésekor több parancs is lefut, amiknek csak a valós hívás vége után kellene.
erre lenne megoldás a rep.mód, amit a robot ugyan megold voip hívás indításakor, vissza is kapcsolja a wifit, de elég lassú a folyamat (ugye előbb lekapcsol wifi, gsm, BT, majd wifi vissza).
Tamás, az E-robot fejlesztője se tud jobbat sajnos, a rep.módba nem tud kivételt tenni. -
#39560925
törölt tag
válasz
WonderCSabo
#3208
üzenetére
Akkor hová való az a gomb?
-
#39560925
törölt tag
Mi annak az oka, hogy a PreferencesActivity layoutja nem a layout mappában van megadva, hanem az xml-ben? Épp beállítások menüt csinálok, és egyelőre csak egy Facebook logout button-t akarok rátenni, de azt PreferenceScreen xml-be nem lehet betenni. Ezért írok egy normális Activity-t a beállításoknak, bár sejtem, hogy nem ez a konvencionális megoldás. De miért nem?
-
zeon.hu
nagyúr
Üdv!
Lehetséges lenne egy olyan applikáció megírása, ami repülőgép üzemmódba való kapcsoláskor a wifit nem kapcsolja ki ?
(Bejövő gsm hívásokat szeretném automatizálóval tiltani a wifi megtartása mellett. Van ugyan megoldás, de azt túl lassú folyamat. )
Ha lehet ilyet, megírni akkor se tudnám, de hátha valaki más
-
válasz
#39560925
#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...
-
#39560925
törölt tag
Sziasztok!
Írni akarok egy primitív android appot. Alapötlet az, hogy facebook-kal beloginelsz, és exception-öket lehet a barátaidnak küldeni. Pl jelez az app, hogy "Nagy Béla sent you a ConstraintViolationException". Amire válaszolsz mondjuk egy OutOfMemoryExceptiont. Tennék bele olyat is, hogyha a felhasználó egy megadott földrajzi hely közelébe kerül, akkor kapjon egy exception-t az apptól. Így pl minden reggel a munkában indulhatna egy NullPointerException-nel.
Ide ezt azért írom, mert kellenének még ötletek, hogy minél több API-t használjak fel.
Új hozzászólás Aktív témák
- Óra topik
- EA Sports WRC '23
- alza vélemények - tapasztalatok
- Samsung Galaxy S23 és S23+ - ami belül van, az számít igazán
- Mini PC
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- AliExpress tapasztalatok
- NVIDIA GeForce RTX 4080 /4080S / 4090 (AD103 / 102)
- Samsung kuponkunyeráló
- Robotporszívók
- További aktív témák...
- AZONNAL KÉSZLETRŐL! AMD Ryzen 7 9800X3D 64GB 6000MHz RAM 2TB Gen4 SSD RTX 5090 32GB GDDR7 1200W
- AZONNAL KÉSZLETRŐL! Intel Core i5 14600K 64GB 6000MHz RAM 2TB Gen4 SSD RTX 5060 8GB FSP 750W
- AZONNAL KÉSZLETRŐL! Intel Core i5 14600K 32GB 6000MHz RAM 2TB Gen4 SSD RTX 5060 8GB FSP 750W
- AZONNAL KÉSZLETRŐL! Intel Core i5 14600K 32GB 6000MHz RAM 1TB Gen4 SSD RTX 5060 8GB FSP 750W
- BESZÁMÍTÁS! GIGABYTE A520M R5 5500 16GB DDR4 256GB SSD 1TB HDD GTX 1060 6GB Zalman T3 Plus 400W
- Samsung Galaxy S22 128GB, Kártyafüggetlen, 1 Év Garanciával
- AKCIÓ! DELL PowerEdge R630 rack szerver - 2xE5-2680v4 (28c/56t, 2.4/3.3GHz), 128GB RAM, 1G, áfás
- Samsung Galaxy S24 128GB,Átlagos,Adatkabel,12 hónap garanciával
- 100/100 - 0Perc - WD BLACK SN850P 1TB - Playstation 5
- Fujitsu LIFEBOOK E449 i3-8130U 12GB 512GB 14" FHD 1 év garancia
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
(AS 1.3 elkélhet hozzá).




![;]](http://cdn.rios.hu/dl/s/v1.gif)





