Menü erst anzeigen, wenn Passwort korrekt.

  • 24 Antworten
  • Letztes Antwortdatum
@Flocke123: Dass "findViewById" unnötig Ressourcen verschwendet ist mir neu. Wüsste auch kein sinnvolles Beispiel wo in einer so großen Fülle Ids gezogen werden müssten, um das System spürbar langsamer zu machen..

Da gibt es wohl "Programmierstile" die deutlich mehr ins Gewicht fallen - neulich ist mir beispielsweise aufgefallen, dass das Trennen von Intents via Switch-Case so ein Fall ist, der wohl besser mittels if-else gelöst werden soll. Steht meine ich auch so in der Google Dokumentation...

@Klawifiantix:
Ja, am Anfang tut man sich wirklich schwer, selbst wenn man schon in anderen Programmiersprachen Erfahrung hat, aber das wird mit der Zeit besser. Da kann ich mich meinen Vorrednern nur anschließen.
Zur Frage ob AndroidStudio oder Eclispe "besser" ist... Ich denke das ist persönliches Empfinden. Ich habe AndroidStudio vor längerem mal in der Version 0.3xx?? (weiß nicht mehr) ausprobiert und da gab es zwar eine recht gute Übersicht über die Darstellung ("wie wird die App später mal auf dem Gerät bei XY-Zoll Display aussehen"), aber insgesamt war mir das Tool doch deutlich unvertrauter als Eclispe, weswegen ich doch wieder zurück zu Eclipse bin.
Darüber hinaus lässt sich Eclipse vielseitiger einsetzen, somit "lernt" man einmal dort die Tastenkürzel und Funktionen und ist damit auch für andere Projekte gut gerüstet.
Kleiner Nachteil von Eclipse (meiner Meinung): nicht immer 100%tig stabil. Habe schon öfters mal erlebt, dass es einfriert - nicht nur auf meinem Rechner.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: Klawifiantix
Juchuh!
Durch Eure Hilfe habe ich es endlich geschafft. Ich habe zwar nochmal komplett bei Null angefangen, also alles nochmal neu geschrieben, aber diesmal so wie ihr es geraten habt. Ich habe jetzt mehrere Activites, die ich auch nutzen kann, sehr praktisch und wesentlich übersichtlicher. Alles funktioniert jetzt, wie ich es wollte.
1)
Jetzt fehlt es aber noch an "Make Up"... ich kann meine TextView scrollen, aber ohne Schwung. Man ist es heutzutage gewohnt, dass man z.B. Internetseiten einen gewissen Stups geben kann und obwohl man das Display nicht mehr berührt, scrollt der Inhalt weiter. Wie kann ich sowas auf meine TextView anwenden?
Um meine TextView scrollen zu können nutze ich:
Code:
tv.setMovementMethod(new ScrollingMovementMethod());
Funktioniert gut, nur haben ich den oben beschriebenen "Schwung" nicht drin.
Kann man den da noch reinschreiben?

2)
Ich speicher alle erstellten Inhalte in eine .txt Datei innerhalb der App ab. Da es sich bei den Texten um ein Tagebuch handelt, möchte ich eine Möglichkeit einbauen, den Text außerhalb der App abzuspeichern, ihn also zu exportieren, so dass ich ihn extern sichern kann.
Wie kann ich eine Datei in einen beliebigen Pfad abspeichern?

Momentan nutze ich folgenden Code, um den Text innerhalb der App zu speichern:
Code:
public SimpleDateFormat Dateidatum = new SimpleDateFormat("MMMyyyy");
public String Dateiname = Dateidatum.format(currentTime) +".txt";

.
.
.

try {//Der Text wird direkt in der Datei Tagebuch.txt gespeichert.
                    String data = tv.getText().toString();
                    fos = openFileOutput(Dateiname, Context.MODE_PRIVATE);
                    fos.write(data.getBytes());
                    fos.close();
                }   catch (FileNotFoundException e) {
                    e.printStackTrace();
                }   catch (IOException e) {
                    e.printStackTrace();
                }

Gruß
Klaw
 
Hi,

bei deinem ersten Problem würde ich lieber um dein TextView ein ScrollView bauen. Dann hast du auch dein gewünschtes Ergebnis.

Gruß
 
  • Danke
Reaktionen: Klawifiantix
Vielen Dank StefMa für den Hinweis. Ich habe es so umgesetzt und es funktioniert tadellos!
Jetzt möchte ich das nur noch mit dem Exportieren hinbekommen.
 
Klawifiantix schrieb:
@ markus.tullius
Danke für Deinen Lösungsvorschlag! Aber ich weiß nicht, wie ich einen private void in meine Buttonfuktion packen kann. Es ließt sich so simpel, aber mir fehlt das Wissen, deine Idee bei mir einbauen zu können. :-/

Sorry, ich war mal wieder schreibfaul.
Code:
private void hideMenuItem (int id) {
       MenuItem item = menu.findItem(id);
       item.setVisible(false);  
}
menu ist eine Klassenvariable field variable, sprich es fehlt ein this (this.menu) davor. Auf Klassenvariablen kann man immer zugreifen (private heißt nur, dass es für andere Klassen nicht sichtbar ist.) Man muss nur vorher sichergehen, dass die Variable nicht null ist. Du kannst die Methode hideMenuItem() überall in der Klasse aufrufen (nur nicht in statischen Methoden).
 
Zuletzt bearbeitet:
Zurück
Oben Unten