Beiträge von killphil75
-
-
Hallo also wenn du Dich schon ein wenig mit Programmierung auskennst, dann kannst du sicherlich komplett auf ein Buch verzichten
und lieber die Beispiele unter http://developer.android.com/g…damentals/activities.html nutzen.Bzw ein paar Grundlagentutorials im Netz lesen.
Mobile Anwendungen mit Android habe ich mir auch gekauft, ist in meinen Augen kein wirklich gutes Buch geworden - die haben das halbe SDK abgedruckt aber nicht wirklich gut erklärt.
Vom selben Autor gibt es ein Videotraining was wesentlich besser ist.
http://www.amazon.de/Apps-entw…TF8&qid=1328736256&sr=8-1
[amazon]3836218151[/amazon]
Das folgende Buch habe ich auch, hier ist das Problem das von vorne bis hinten nur eine App programmiert wird und man sicherlich unterwegs beim lesen der Lektüre gerne seine eigenen Probleme behandelt sehen will. Obendrein ist nur Android V 2 abgedeckt.
http://www.amazon.de/Android-G…TF8&qid=1328736298&sr=1-1
[amazon]3898646777[/amazon]
Das Buch was mir am meisten bei grundsätzlichen Verständnisfragen zum Thema Android geholfen hat ist:
http://www.amazon.de/Android-A…TF8&qid=1328736298&sr=1-2
[amazon]3836216973[/amazon]
ZitatPrgrammieren
möchte ich eine App, die eine Karte zeigt und vieleicht dazu meinen
Standort makiert wo ich mich gerade befinde. (nicht lachen wenn es sowas
schon längst gibt, natürlich kommen da noch mehr Funktionen hinzu)
In dem Android2 Buch wo die Anwendung Amando programmiert wird, dreht sich alles um das Thema Standort/Lokalisierung ect. - Eine kostenlose Version des Buches (1Auflage ist im Netz erhältlich -> http://dpunkt.de/buecher/3436.html Da kannst du ja mal reinschauen.
ZitatWas nimmt eigentlich für ein Entwicklungsumgebung?
Android-SDK?
Als IDE ist Eclipse sehr gebräuchlich (NETBEANS gibt es auch), auf den Android Developer Seiten gibt es gute Anleitungen zur Installationen.
Das SDK (ebenfalls auf diesen Seiten zu finden) bringt einen Emulator zum Testen mit. Und das ADT bindet das SDK super in Eclipse ein.UweApps: -> Eclipse ist auch manchmal zickig - mit den 64 Bit Versionen gibt es ab und zu Probleme mit dem ADT, da gibt es im Netz aber auch jede Menge Anleitungen/work arounds
-
Zitat
Nutzt das gesamte TableLayout eine XML Datei als Gerüst oder werden nur
sol viele Spalten angezeigt wie in der TableRow definiert ???Das kannst du halten wie du möchtest, entweder XML oder halt dynamisch im Programmverlauf.
Natürlich kannst du vorher alle Zeilen vordefinieren, was aber nicht besonders effektiv ist. Stell Dir vor es werden 11 oder mehr Spieler.Das Problem an deinem Screenshot, ich weiss noch immer nicht wo du hin willst.
Die Punkte Button oben, wie willst du wissen welcher Spiele wieviele Punkte bekommt - wie realisierst du die Auswahl/Zuteilung ???Zitat- Mir setContentView füge ich die Aktualisierung zu Ende.
Brauchst du nur einmal am Anfang zum Init. Neue Views einfach nur per addView.
-
Hmm Glaskugel, Glaskugel --
wenn andere Sachen (Textview, Canvas ect) aus deinem Aufrufskonstrukt veränderst werden, dann funktioniert das ??? (also nicht der ProgressDialog)
bist du im richtigen Context unterwegs ??? (zur Not mal per getApplicationContext() ganz hart )
Und noch ein ganz abwegiger Ansatz, hast du im Theme an deinen Dialog EInstellungen was verändert ???
Hat er eventl ein Layout Problem???Läuft irgendwo eine Routine durch wo noch ein unbedachtes Dismiss steht ????
Fragen über Fragen
so ganze ohne Code wird es wohl ein Rätsel bleiben.
-
Also in 1) wird nur das Tablelayout gesucht und eine Instanz gespeichert
Und dann füge ich einen Header hinzu, was im Grunde ja auch nur eine Tabellenzeile ist.
der 2te Code Teil ist ja fast identisch, den habe ich nur mal ausgeklammert, weil das bei mir der Teil ist, der in einer Schleife läuft und mit Daten befüllt wird.
Codefor(int i=0;i<tabelle.size();i++) { TabEintrag data = tabelle.get(i); // Daten aus Tabelle holen
wobei data einfach eine Datenstruktur/Klasse ist - könnte ja auch ein Array sein, was auch immer ...Das setzen des Grundlayout hab ich weggelassen das ist ja Standardkost.
-
Zitat
Was allerdings nicht so funktioniert wie ich mir das wünsche
Hmm das ist immer einer sehr nebulöse Antwort, was konkret geht denn nicht ??? Welche Fehlermeldung wirft der Debugger ???
Pending Intent -> einfach Googlen -> ist nur ein Hilfskonstrukt
http://developer.android.com/r…id/app/PendingIntent.html
http://stackoverflow.com/quest…intent-and-pending-intent
-
Hmmm
den Quellcode einer Seite ist so eine Sache, wenn du einen HTTP Request an einen Browser sendest bekommst du immer etwas zurück,
in den meisten Fällen eine fertige HTML Seite bzw das was Dir der Anbieter zurückliefert.
Falls du einen Request an eine .php Seite sendest wirst du auch hier nur den output der Php Routinen zurückbekommen und niemals den Quelltext.
So viel zur Vorrede.Hier ein Beispiel für einen Request:
http://w3mentor.com/learn/java…ng-httpclient-in-android/
So jetzt noch der erhobene Zeigefinger:
Du musst jetzt aufpassen, was du mit den Daten der Seite machen willst. (Ich vermute mal du willst die Seite Parsen und bestimmte Teile der Seite verwenden)
Wenn es deine Seite ist, welche du einfach abfragst und in deine App einbindest ist alles ok.
Wenn es sich um Angebote Dritter handelt musst du vorher die rechtliche Seite abklären, letztendlich ist es strafrechtlich relevant wenn du fremde Inhalte bei Dir einbindest und als deinen Content ausgibst.-> Wenn du Daten von Dritten benutzen möchtest bzw diese das auch anbieten, gibt es in den meisten Fehlen standardisierte Schnittstellen (xml , soap ect)
Wenn du deine App für viele Plattformen anbieten willst, dann solltest du alle Geräte ab 2.1 unterstützen damit deckst du dann 94 Prozent der Android User ab.
http://developer.android.com/r…rd/platform-versions.html
PS: wichtig ist das du in deinem Manifest deiner App auch android.permission.INTERNET
setzt sonst blockt der Emulator/Phone -
Meine Erste Frage ist jetzt:
wie übergibt man werte z.B. eine weckzeit von einer Activity an eine andere?Um deiner Activity Daten mit zu geben nutz du putExtra
Intent.putExtra(String Name,String Value)CodeIntent intent=new Intent(IntentsDemo2.this,Activity2.class); intent.putExtra("Startname", "wert1");
in deiner Activity, welche die Daten liest nutz du dann...
Wegen der Speicherung des Datums, kannst du dir ja mal Datetime anschauen.
Wobei für einen Wecker brauchst du eigentlich ja nur die Uhrzeit... -
Als Alternative würde ich Dir vorschlagen, schau doch mal in den SourceCode von Android 2.2 -> such die Methode und baue Sie bei dir ein,
bzw da siehst du ja wie dort der Pfad zusammengebaut wird.
-
-
Bei mir schaut es so aus
Code
Alles anzeigenTableLayout tl = (TableLayout) findViewById(R.id.tableLayout1); tl.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); tl.setColumnStretchable(1, true); tl.setColumnShrinkable(1, true); // Header zeichnen - 1.Zeile TableRow trh = new TableRow(context); trh.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); trh.setBackgroundColor(Color.rgb(230,230,230)); TextView header1 = new TextView(context); header1.setText(""); header1.setTextSize((float) 11.0); header1.setPadding(2, 0, 8, 2); header1.setTextColor(Color.GRAY); header1.setGravity(Gravity.RIGHT); trh.addView(header1); TextView header2 = new TextView(context); header2.setText("Mannschaft"); header2.setTextSize((float) 11.0); header2.setPadding(2, 0, 8, 2); header2.setTextColor(Color.GRAY); header2.setGravity(Gravity.LEFT); trh.addView(header2); .... usw .... tl.addView(trh);// add rows to the table.
und nun die Daten in einer Schleife baue ich wie folgt zusammen
Code
Alles anzeigenTableRow tr = new TableRow(context); tr.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT)); // ID TextView col1 = new TextView(context); col1.setText( String.valueOf(data.getId())); col1.setTextSize((float) 13.0); col1.setPadding(2, 0, 8, 2); col1.setTextColor(Color.GRAY); col1.setGravity(Gravity.RIGHT); tr.addView(col1); // Mannschaft TextView col2 = new TextView(context); col2.setTextSize((float) 13.0); col2.setPadding(0, 2, 0, 2); col2.setTextColor(Color.BLACK); col2.setText(data.getName()); col2.setGravity(Gravity.LEFT); tr.addView(col2); .... usw .... tl.addView(tr);// add rows to the table.
in der xml
Code
Alles anzeigen<LinearLayout android:id="@+id/linearLayout1" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="horizontal" > <TableLayout android:id="@+id/tableLayout1" android:layout_width="fill_parent" android:layout_height="wrap_content" > </TableLayout> </LinearLayout>
-
Wie gesagt, es funktioniert ja alles
In der Klasse habe ich alle Sachen (im Grunde sind es ja nur OnClicklistener zusammengefasst, wichtig ist nur, das der jeweilige View übergeben wird, damit dir R.id Verknüpfungen gefunden werden
Codepublic static void generiereNavigation(final Context ctx, View v ){ final Button but_home = (Button) v.findViewById(R.id.nav_home); final Button but_news = (Button) v.findViewById(R.id.nav_news); ....
so rufe ich das Ganze in einer Activity auf
un meine Layouts sehen so aus. Per include Binde ich das Layout meiner Toolbar ein
Code
Alles anzeigen<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical"> <ScrollView android:id="@+id/scrollView1" android:orientation="vertical" android:fillViewport="true" android:layout_marginBottom="64dip" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="4dip"> blah blaj blah noch mehr Views.... </LinearLayout> </ScrollView> <include android:id="@+id/toolbar" layout="@layout/navigations_bar" /> </RelativeLayout>
-
Ja hab jetzt den ganzen Navigationsquatsch in eine Klasse ausgelagert und belasse aber momentan die Steuerung per Activity Switch,
ich hatte mal ein wenig im Netz gelesen eventl wg View_Switching, aber dann hat man eine MonsterKlasse die nur unnötig den Speicher zuballert,
man muss sich selber um das komplette Umschalten kümmern.Mit Tabs habe ich jetzt noch nicht so viel gemacht, aber meine Buttonleiste macht ja im Grunde das selbe.
Mir ging es hauptsächlich darum, das ich die NavKlasse in jede Activity einhängen kann.Bislang hatte ich auch einige Funktinalität (passend zu jeweiligen Activity) in Menüs ausgelagert, nun empfiehlt ja aber Google seit Anfang Januar in Ihrem DevBlog in Zukunft auf Menünutzung zu verzichten, da zukünftige Geräte (siehe Tablets) keine Hardware Menütaste mehr haben, sondern alles nur noch per Softbar dargestellt wird.
Da ich jetzt selber erleben musste, dass einige Tabletnutzer gar nicht mitbekommen wenn diese "Menübutton" unten eingeblendet werden und somit den "Aktualisieren-Button" nicht gefunden haben, bin ich jetzt auf "Actionbar" umgestiegen, da bekommt man aber halt keine Komplette Navigation unter bzw. ist die auch nicht dafür ausgelegt -> daher die Toolbar.
So sieht das ganze aus, farblich habe ich es noch nicht angepasst daher noch (schwarz/grau)
[Blockierte Grafik: http://www.webos-entwickler.de/android/img_neu/sc_tabelle_neu.png]
-
-
Hallo ich habe eine Frage bzw hat vielleicht jmd so etwas schon mal implementiert.
Bislang hatte ich in meiner App eine Startseite mit jeder Menge Button und von dieser ist man in die jeweiligen Activities gesprungen, dann wieder zurück zur Startseite und halt wieder in die gewünschte Unterseite.
Jetzt habe ich mir eine Toolbar gebastelt (Iphone like) welche am unteren Bildrand plaziert ist und welche nun die Navigation übernehmen soll.
Sprich man muss nicht mehr zurück zur Startseite, sondern kann sofort in die jeweiligen Programmbereich wechseln.Logischerweise soll die Navigation auf allen Unterseiten erscheinen.
-> vom Layout zu implementieren ist das ja kein Problem, dank <include> kann man das Design überall einbinden und somit re-usen.
-> mit der Logik muss ich mal schauen, bzw iist das der Punkt wo ich gerade hänge -Wie steuere ich das Programm nun vernünftig ???
Da ich den CompatibilityPack installiert habe bzw auch ActionBar Sherlock nutze, hab ich mir gedacht FRAGMENTE wären evntl. eine Lösung,
hat das schon mal jemand gemacht oder kennt sich damit aus ???oder gibt es da noch einen anderen Lösungsansatz ???
-
hmm also Html 5 ist noch ein paar Jahre davon entfernt ein robustes framwork für die Spieleentwicklung zu sein. natürlich gibt es ein paar beispiele im internet - aber das ist noch nicht wirklich alltagstauglich.
die meisten spiele sind aber native apps sprich in java programmiert.
-
Hmmm kommt darauf an.... wie und wo du Ihn einsetzen willst
Die von Android angebotenen Parser funktionieren gut und sind leicht einzubinden,
ich hatte z.b. nur ein Problem beim Lesen von Feeds> der SAX parser hat einen Bug, deswegen ist seine Nutzung erst ab 2.2 fehlerfrei möglich, meine App sollte aber ab 2.1 fehlerfrei laufen. Also habe ich diese Alternative gefunden .
http://www.thebuzzmedia.com/so…ple-java-xml-parser-sjxp/
zum Verarbeiten lokaler XML Dateien (von SD Karte z.B.) benutze ich den XML Pullparser, der ist einfach zu strukturieren und unheimlich flexibel.
-
Wenn du die App für mehrere Plattformen anbieten willst, (zb auch noch iOs) dann hast du halt mit PhoneGap nur einmal den Entwicklungsaufwand.
-
Ei, ei, ei alles klar jetzt weiss ich was du meinst.
Naja da würde ich wieder einen Service installieren, der permanent läuft und den PowerManager beobachtet.
http://developer.android.com/r…roid/os/PowerManager.html and check isScreenOn()
oder Lösung aus dem englischen Bereich
You can create a BroadcastReceiver and register it with your application to listen for Intent.ACTION_SCREEN_OFF, Intent.ACTION_SCREEN_ON, and Intent.ACTION_USER_PRESENT. Between SCREEN_OFF and USER_PRESENT, the phone is locked.
-
hmmm, und kann man irgendwie den schalter checken ob das gerät von hand eingeschaltet wird.
??? Häh ??? Man kann das Gerät nur von Hand einschalten, was will man da checken ???
einschalten = boot
Das Problem ist eher der Lockscreen, den müsstest du in den Einstellungen->security am besten ausschalten, dann startet er ja dank BOOTReceiver auch zu deiner APP durch