Diät App programmieren, welches Speicehrsystem?

  • Antworten:8
Alexander Schäfer
  • Forum-Beiträge: 17

06.01.2013, 14:40:31 via Website

Hallo, ich bin dabei meine erste App zu planen.
In meiner App soll es möglich sein, Mahlzeiten abzuspeichern inklusive der Werte wie kcal Proteine Fett und Kohlenhydrate.
Danach kann man sich natürlich alle Werte nocheinmal angzeigen lassen, auch von vergangenen Diät Tagen.

Wäre SQLLite eine gute Option?

Antworten
Alexander Schäfer
  • Forum-Beiträge: 17

06.01.2013, 15:20:08 via Website

Oh, das hätte ich vielleicht dazu sagen sollen...ich verfüge nicht über eine riesige Datenbank wie einige Seiten wo man alle Werte zu jedem Nahrungsmittel finden kann.
Deshalb sollte der Benutzer vorher seine Nahrungsmittel abspeichern. Also bekommt er eine Eingabemaske wo er eingeben kann
Nudeln (werte auf 100g) Kcal : 1 Protein : 1 KH : 1 Fett : 1
Den Namen der Zutat muss er auch eingeben

Antworten
Alexander Schäfer
  • Forum-Beiträge: 17

06.01.2013, 17:03:57 via Website

Nochmal die Verdeutlichung meines Problems :
Der Benutzer kann ein Nahrungsmittel speichern mit den Werten Namen und Kalorien.
Danach soll er die Möglichkeit haben aus einer Liste aller Nahrungsmittel auszuwählen und deren Informationen abrufen können.

Mit welcher Methode bekomme ich das jetzt am geschicktesten hin? Ob Global auf einem Server oder lokal nur auf dem Handy ist mir eigentlich egal..

Antworten
Daniel
  • Forum-Beiträge: 177

06.01.2013, 19:07:58 via Website

Einfach in der SQLite DB ablegen. Genau dafür ist sie doch gedacht.

Alexander Schäfer

Antworten
Gelöschter Account
  • Forum-Beiträge: 694

06.01.2013, 23:01:26 via Website

Alexander Schäfer
Ob Global auf einem Server oder lokal nur auf dem Handy ist mir eigentlich egal..

Da gem. Deiner Beschreibung der Benutzer ohnehin alles selbst eingeben muss brauchst Du keinen Server und kannst das mit der lokalen SQLite machen.

Alexander Schäfer

Antworten
Alexander Schäfer
  • Forum-Beiträge: 17

07.01.2013, 01:59:06 via Website

ok, danke..hab auch schon einige tutorials jetzt durchgearbeitet!

Antworten
Alexander Schäfer
  • Forum-Beiträge: 17

07.01.2013, 02:08:35 via Website

Ich will jetzt nicht gleich den nächsten Thread aufmachen..deshalb frage ich gleich schon hier :

Die Aufgabe : In der Mitte wird das heutige Datum angezeigt, links und rechts sind jeweils Pfeile die den vorherigen tag bzw den nächsten aufrufen sollen.
In der Mitte sind die Informationen dieses bestimmten Tages, die dann aus der Datenbank kommen.

Momentan funktionert es wie folgt : Klickt man auf den Button für den Tag davor anzuzeigen wird folgendes aufgerufen :
1Intent intent =new Intent(MainActivity.this,MainActivity.class);
2 cal.add( Calendar.DATE, -1 );
3 final String formattedDate = sdf.format(cal.getTime());
4 cal.add(Calendar.DATE, +1);
5 intent.putExtra("datum",formattedDate );
6 startActivity(intent);

Also wird die selbe activity innerhalb der activity nochmal aufgerufen, und schickt der neuen mainactivity das anzuzeigende datum. jedoch glaube ich das es eine sehr unsaubere lösung ist, weil man dann quasi unendlich viele MainActivitys erstellt..
sind meine sorgen unbegründet, oder gibt es eine bessere lösung?

Antworten
Appsoluts
  • Forum-Beiträge: 304

07.01.2013, 16:29:37 via Website

Ich habe ja keine Ahnung wie dein restlicher Code aussieht aber immer wieder eine neue Activity aufzurufen ist nicht sinnig.
Ich stell mir das gerade so vor:


<- 07.01.2013 ->

TEXT TEXT TEXT
TEXT TEXT TEXT


Und jetzt willst du, dass wenn ich nach rechts oder links klicke, sich das Datum um 1 erhöht, verringert und gleichzeitig der Content(Text) sich mit ändert ?

Wenn ja brauchst du doch immer nur den Datumstext neu zu setzen.

pfeillinks.setOnClickListener(new OnClickListener(){
public void OnClick(View v){
TextView datums_text....getText().toString()
.
Dann formatest du den in ein Calendar Object, addierst 1, subtrahierst 1 und setzt den Text neu
datums_text.setText(...)
}
});

Da du den Content ja wahrscheinlich mit ner ListView oder GridView darstellst musst du ja nur dem Adapter mitteilen, dass sich der Content geändert hat und er neu laden soll

Antworten