Ah ok, das wusste ich nicht einmal. Werde es mal mit unserer Anwendung probieren und berichten. Hoffe doch sehr, dass sich dadurch die weitere Nutzung unserer App deutlich verbessert
Beiträge von drumliner
-
-
Man kann seinem Fragment jederzeit etwas zustellen Dazu einfach das Fragment holen und die zuständige Funktion aufrufen Parameter übergeben und gut.
Bsp:
CodeDetailFragment fragment = (DetailFragment) getFragmentManager() .findFragmentById(R.id.detailFragment); if (fragment != null && fragment.isInLayout()) { fragment.setImageNumber(1); }
Alternativ kann man genauso gut mit Listener arbeiten. Wie man aus ChampS link entnehmen kann (hab nur kurz reingeschaut).
-
Lukas das hat mich bislang auch nicht wirklich interessant, aber wie das nun mal so ist kommt immer was dazwischen Das Problem mit den mehreren tasks kann ich leider nicht so einfach umgehen, da die selbe Methode die die asynctasks erstellt mehrfach innerhalb von 5sek aufgerufen wird (mindestens 5 max. 10 mal). Ohne hab ich das Problem, dass der die benötigten Berechnungen nicht durch bekommt
Volley hab ich mir bislang gar nicht angesehen. Hab zwar die Session damals verfolgt, das war es dann aber auch. Wie sind deine Erfahrungen bislang? Bereits ausprobiert ob es ggf. weitere Tasks blocken würde? -
Hallo miteinander,
ich möchte von euch gern in Erfahrung bringen wie ihr eure Anwendungen aufbaut, wenn diese Daten aus dem Internet lädt. Aktuell ist es in vielen Anwendungen bei mir so, dass ich die Daten innerhalb eines AsyncTask herunterlade (Nur Text). Bislang habe ich in meinen Anwendungen nur Exeptions und eine bestehende Verbindung berücksichtigt, aber bisher kein Timeout etc pp.
Wie läuft das Ganze bei euch so? Ein Typisches Beispiel von mir (downloadFromUrl wird innerhalb des AsyncTasks aufgerufen!):
PHP
Alles anzeigenprivate String downloadFromUrl(String siteurl) throws ClientProtocolException, IOException { InputStream inputStream = null; try { HttpClient httpClient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(siteurl); List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs .add(new BasicNameValuePair("user", user)); nameValuePairs.add(new BasicNameValuePair("pass", pass)); nameValuePairs.add(new BasicNameValuePair("days", days)); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs, "UTF-8")); HttpResponse response = httpClient.execute(httppost); StatusLine statusLine = response.getStatusLine(); int statusCode = statusLine.getStatusCode(); if (statusCode == HttpStatus.SC_OK) { HttpEntity entity = response.getEntity(); if (entity != null) { String responseBody = EntityUtils.toString(entity); return responseBody; } } else if (statusCode == HttpStatus.SC_BAD_REQUEST) { // error bad request shoe message BAD_REQUEST Log.i("BAD REQUEST", "BAD REQUEST"); } else if (statusCode == HttpStatus.SC_BAD_GATEWAY) { // error bad request shoe message BAD_GATEWAY Log.i("SC_BAD_GATEWAY", " SC_BAD_GATEWAY"); } } finally { if (inputStream != null) { inputStream.close(); } } return "null"; }
Verbesserungsvorschläge? GGf. Intent Services ? Wie am besten Timeouts verarbeiten (Beispiel)?
Des Weiteren wäre es mal interessant zu Wissen wie ihr vorgeht, wenn ihr "berechnungen oder anderes" im Hintergrund ausführt die NICHT unterbrochen bzw. aufgeschoben werden dürfen durch andere AsycTasks. Sprich es wurden gleichzeitig mehrere AsyncTasks ausgelöst.
-
Dazu hat Google bereits ein ziemlich leicht zu verstehenedes Tutorial online gestellt, siehe hier:
-
Dafür kann man gut das Grid Layout verwenden.
-
Ich gehe jetzt einfach davon aus, dass die Klasse Werberechnung auch das tut was Sie soll. Wieso setzt du dann darunter den contentView erneut? Es geht zwar ist aber nicht "üblich" und auch nicht zu empfehlen.
Evtl. sagst du uns mal genau was du da vorhast. Aus Kommentar #1 ist alles korrekt. Das Layout sieht auch ok aus, was du in deiner "WertberechnungsKlick" machen möchtest ist für mich aktuell ein Rätsel. Du solltest hier einige Infos mehr liefern, sonst wirds es schwer, denn ich bin von Beruf Fachinformatiker und kein Hellseher
Übrigens solltest du dich an übliche konventionen bei der Entwicklung halten. Bsp: die Methode "WertberechnungsKlick" -> wertberechnungsKlick. Du siehst Methoden fangen klein an, das selbe gilt für Variablennamen. Klassen fangen groß an
Des Weiteren solltest du dir ggf. das Openbook Java ist auch eine Insel durchlesen um die Grundlagen zu erlernen.
http://www.galileocomputing.de…t_auch_eine_insel_10..pdf
Edit: Was möchtest du mit android:textAppearance="@id/txt_nettobetrag" bezwecken? Der wird kein Style dazu finden.
-
Hi David,
am Quelltext liegt es nicht. Du scheinst irgendwo anders ein Problem zu haben. Werden dir irgendwelche Warnungen / Fehler angezeigt (siehe auch LogCat Einträge).
Ansonsten kann ich "vorerst" nur fragen:
Die id (txt_nettobetrag) ist auch tatsächich direkt am TextView?
Dein TextView ist innerhalb des Layouts (Wertberechnung?)Grüße
-
Welche Tutorial-Serie meinst du bitte?
-
Dann schau dir einfach mal deinen kompletten Source für die columns genauer an, bzw poste es doch alles was dazu gehört statt nur einen Teil
Bzgl. Datenbank Öffnen kannst du adb shell verwenden.
Um zum data Verzeichnis zu gelangen:
cd /data/data
#Dein Projekt
cd de.irgendwas.projekt# Verzeichnis der DB:
cd databases# Ansehen was alles drin liegt:
ls# Zur Zable "projekt.db" verbinden
sqlite3 projekt.dbFür alles weitere:
http://www.sqlite.org/sqlite.html
-
Ich hab jetzt den Pfad von Projekt und JDK zur Variable "Path" hinzugefügt,
Ähm der Pfad zum Projekt hat in der Path Variable nichts zu suchen.
Bsp:
JAVA_HOME => C:\Program Files\Java\jdk1.7.0_21
path => C:\Program Files\Java\jdk1.7.0_21\binBitte achte auch auf die benötigte Bit Version
Des Weiteren versuch immer so genau wie möglich zu sein. Schreibe jeden Schritt rein den du gehst bzw. gegangen bist. -
Lass mich raten du verwendest das JDK < 1.7 ? Da gibt es derzeit noch Probleme. Du musst auf Version 1.7 upgraden:
http://www.oracle.com/technetw…k7-downloads-1880260.html
Nähere Informationen findest du auch im Android Bug Tracker
-
Na siehst, steht direkt in der Ausgabe drin was Sache ist.
Edit: Siehe Links von Matthias.
-
gradlew clean build
Was ein Buchstabe ausmacht
-
LogCat kann damit nichts anfangen. Ich meine die System-Konsole.
Nutzt du Windows? Dann ist es unter "Start" / "Alle Programme"/"Zubehör" / "Eingabeaufforderung" zu finden. Alternativ in der Suche einfach cmd eingeben (Start -> durchsuchen -> cmd eingeben)
OS X: Programme -> Dienstprogramme -> Terminal
Wenn du die Konsole geöffnet hast musst du zu deinem Verzeichnis Navigieren und dort die oben erwähnte Zeile eingeben.
-
In deiner Konsole / deinem Terminal
-
Ok, es geht hier also um ein komplett neues Projekt?
Bitte führe mal in deinem Projekt folgendes aus und kopiere die Meldungen hier herein:
gradlew clean build
-
Du hast uns viel zu wenig Informationen gegeben.
Sag uns was du vorhast.
Wie dein Projekt aufgebaut ist.
Und vor allem füg deine build.gradle ein. -
Hallo asami,
ein Problem ist das nicht. Du solltest evtl. mal ein wenig mehr Informationen und Quelltext preisgeben
-
Das kannst du bestätigen wie du willst.
Soll es auf "Knopfdruck" passieren? Dann füge in deinem layout einen Button hinzu und gibt diesen den Parameter:
android:onClick="pushCheck"
Die Methode hast du dafür ja oben
Wenn du es über die Zeicheneingabe im EditText Feld machen möchtest, musst du auf diesen einen Listener setzen (addTextChangedListener).
Sag einfach wo dein Problem ist und was du genau haben möchtest.