Beiträge von Thallius
-
-
Oha wo fang ich an
Zunächst einmal solltest du niemals passwörter in Klartext speichern oder gar übers Netz schicken. Benutze zumindest MD5. Wenn Du danach Googlest wirst du schnell fündig werden.
Dann nutzt Dir dein ganzes Eingelogge ja gar nichts wenn dir das login script nicht irgendwas zurück gibt.
Die Lehrer-Id anhand der Namens herauszufinden macht keinen Sinn. Was machst Du wenn es plötzlich zwei Lehrer Hans Meier gibt? Du must im Login-Script die ID holen und merken oder an die App zurück geben und bei jedem weiteren Script Aufruf angeben.
Besser noch solltest Du deine Abfragen mit einer SESSION absichern. Das bedeutet du startest eine SESSION und wenn der Login ok ist, dann setzt du eine SESSION Variable mit der Lehrer ID (damit hast du die ID für alle Scripts zur Verfügung) und gibst die SESSION ID an deine App zurück. Jedes weitere Script bekommt nun dieses Session ID übergeben und nur wenn diese noch gültig ist (also die Session noch aktiv), wird das Script auch ausgeführt.
Übergeben tust Du diese Parameter mit POST Requests. Wenn Du mal nach Android HTTP POST Request suchst, wirst du jede Menge Tutorials dazu finden.
Viel Spaß
Claus
-
Ich weiß jetzt nicht wie es da mit fußwegen aussieht aber es gibt Möglichkeiten Routen zwischen mehreren Punkten zu bekommen. Ein OpenSource Project wäre z.B.
https://github.com/Project-OSRM/osrm-backend/wiki/Server-api
Da must du natuerlich deinen eigenen Server konfigurieren und als Backend benutzen.
Wenn du was fertiges willst, wirste Du dafür bezahlen müssen. Eine Mgölichkeit:
https://graphhopper.com/#pricing
Gruß
Claus
-
Wenn Du willst dass niemand von aussen drauf zugreiffen kann, kannst Du die Datei mit AES verschlüsseln.
Datenbanken würd ich nur nutzen wenn Du wirklich grosse Mengen an Daten hast und wenn Du daraus Daten mit bestimmten Kriterien finden willst.
Naja im Android Umfeld ist Verschlüsseln genauso sinnvoll wie in anderen Java Bereichen auch. Deinen Salt habe ich in 5min aus deiner App herausgeholt und dann entschlüssel ich mir die Daten eben kurz.
Gruß
Claus
-
Da kann ich leider gerade nicht helfen.
Aber ganz davon ab, würde ich für Android eh
java.net.HttpURLConnectrion
bevorzugen.
Gruß
Claus
-
Mit scheint dir fehlt dann wohl die apache.http lib.
Einfach entsprechendes .jar File ergooglen und zum Projekt hinzufügen. Wie das geht ist IDE abhängig.
Gruß
Claus
-
Zunächst einmal hoffe ich das Du Username und Passwort nicht ohne Verschlüsselung auf dem Device gespeichert hast.
Dann solltest du NIEMALS das Passwort selber als PArameter übergeben sondern immer nur den HASH des Passwortes. Da Du ziemlicher Anfänger bist wie mir scheint, würde ich dir hier das Stichwort MD5 empfehlen. Auch wenn es milerweile schon besseres gibt ist das für den Einstieg sicher am einfachsten.
Dann darfst du NIEMALS deine Datenbank direkt aus der App heraus ansprechen. Denn dann müßtest Du in der App die Zugangsdaten der Datenbank speichern und wenn die jemand heraus holt, dann löscht er dir aus Spaß mal eben deine DB.
Es muss also alles über einen Webservice laufen. Für den Login hast Du ja schon ein PHP Script gemacht. Also bleiben wir auch dabei. Ein PHP Script rufst Du über einen HHTP Request auf. In diesem Fall ein POST Request. Wenn Du nach
android POST HTTP Request
googelst solltest du viele Beispiele finden.
Gruß
Claus
-
Ich finde es immer gefährlich Variablen nur mit einem Buchstaben zu benennen. Das gilt auch für unique IDs. Vielleicht hast du irgendwo noch ein View/Element irgnedwas k genannt?
Gruß
Claus
-
Ich würde mir mal die SharedPreferences ansehen solange es nur 5 Zahlenwerte sind.
Gruß
Claus
-
Sorry das ich mich erst jetzt melde aber das Android ist ja nur Hobbyprojekt und im Moment bin ich beruflich ziemlich dicht.
Das mit dem visibility funktioniert wunderbar.
Danke
Claus
-
Hi,
ich habe ein Layout für ein ListView Item, welches 4 TextViews beinhaltet. Das Item selber hat RelativeLayout, so das sich die TextViews auch immer super an den Text anpassen. Soweit alles schön.
Jetzt kann es aber vorkommen, dass es für ein TextView gar keinen Text gibt. Hier wäre es schön, wenn das TextView dann auch keinen Platz wegnimmt. Ich habe einfach mal im getView des Adapters ein textView.setHeight(0) gemacht. Das funktioniet dann auch ganz prächtig. Allerdings wird die Zelle ja u.U reused und dann muss ich die Höhe wieder setzen, da ich sonst keinen Text bekomme. Ich weiß die Höhe aber leider nicht.
Alternativ könnte ich das textView auch ganz aus dem layout herausnehmen aber wie bekomme ich es dann wieder rein? Ich könnte auch entsprechend viele verschiedene Layouts erstellen und immer das benötigt Laden, nur wenn ich dann für alle 4 TextViews alle Kombinationen erstellen würde, wäre das ja auch nicht gerade elegant.Wie würdet Ihr das lösen?
Gruß
Claus
-
Ok,
gerade heraus gefunden das anders herum ein Schuh draus wird. Ich kann mir in dem Fragment anscheinend einfach die MainActivity holen.
Gruß
Claus
-
Jetzt müßte ich nur noch herausfindem, wie ich dem Fragment bei der Erstellung ein paar Referenzen vom MainActivity mitgeben kann. Zum Beispiel brauche ich dringend den Context damit ich z.B. eine Datei lesen und schreiben kann. Oder um herauszufinden ob das Gerät online ist etc.
Da aber das Fragment ja nicht mit new() erzeugt wird und ich somit keinen custom Kontruktor dafür erstellen kann, weiß ich nicht wie ich das mache.
Gruß
Claus
-
Danke Marco,
das war mal eine super Erklärung für einen Apple-Verwöhnten
Gruß
Claus
-
Hm,
kapier ich trotzdem nicht. Ja das ListView ist in einem Fragment. Und ja dieses Fragment ist anscheinen im OnCreate der MainActivity noch nicht intialisiert. Soweit kann ich Dir folgen. Aber wie und vor allem wann in welcher Methode der MAinActivity kann ich denn nun meinen Adapter für das ListView setzen?
Gruß
Claus
-
Sicher mache ich das in onCreate. Hier der Teil des MainActivity
Code
Alles anzeigenpublic class MainActivity extends FragmentActivity implements WebserviceListener { public FragmentTabHost mTabHost; public WebService service; public boolean isOnline() { ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo netInfo = cm.getActiveNetworkInfo(); return netInfo != null && netInfo.isConnectedOrConnecting(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTabHost = (FragmentTabHost) findViewById(android.R.id.tabhost); mTabHost.setup(this, getSupportFragmentManager(), android.R.id.tabcontent); mTabHost.addTab( mTabHost.newTabSpec("tab1").setIndicator("Termine", null), FragmentTab.class, null); mTabHost.addTab( mTabHost.newTabSpec("tab2").setIndicator("Einstellungen", null), FragmentTab.class, null); service = new WebService(this, isOnline()); service.addListener(this); service.getData(); DatesListAdapter adapter = new DatesListAdapter(null); ListView datesListView = (ListView)findViewById(R.id.datesListView); if(datesListView!=null) datesListView.setAdapter(adapter); }
So sieht das FragmentTab aus:Code
Alles anzeigenpublic class FragmentTab extends Fragment { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = null; String tag = this.getTag(); if(tag.equals("tab2")) { v = inflater.inflate(R.layout.settings_layout, container, false); } else { v = inflater.inflate(R.layout.dates_layout, container, false); } return v; } }
GrußClaus
-
Hi,
ich habe in meine MainActivity ein FragmentTab eingebaut. In das eine Tab lade ich nun mit
mein benötigtes layout. Dieses Layout beinhaltet ein ListView mit der id datesListView.Wenn ich nun in der MainActivity versuche dieses ListView mittels
zu erhalten, bekomme ich nur null zurück. In dem R-File steht das listview aber unter id drin.Was mache ich verkehrt?
Danke
Claus
-
Danke nu gehts aber der Hintergrund bleibt trotzdem wie er ist.
Naja ich mache jetzt erstmal was anderes (siehe neuer Thread) sonst verlier ich vollends die Lust
Gruß
Claus
-
Irgendwie kapier ich es nicht wirklich. Ich habe folgendes nun in den styles versucht
Code
Alles anzeigen<resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> </style> <style name="MyActionBar" parent="@android:style/Widget.AppCompat.Light.DarkActionBar"> <item name="android:background">#FF0000</item> </style> </resources>
bekomme aber einen Fehler das die Parent Resource nicht gefunden wird. Wie heißt denn der Parent richtig?Gruß
Claus
P.S. warum formatiert er mir immer meinen Code kaputt?
-
Danke für eure Antworten.
Irgendwie ist meine Lust auf Android schon wieder deutlich unter 0. Wenn man nicht mal so eine einfache Änderung problemlos machen kann, dann will ich gar nicht wissen wie lange ich brauche bis ich die Tabview mit Tableview und dynamischen Zellengrößen hinbekomme.
Gruß
Claus