Hilfe Button Name... ändern

  • 10 Antworten
  • Letztes Antwortdatum
M

MagicFighter96

Neues Mitglied
0
Hallo, ich bin neu hier un hoffe erst einmal das richtige Forum und die richtige Kategorie gefunden zu haben. Ich brauch Hilfe bei meiner APP. Ich lerne grade selbst etwas programmieren seit paar Monaten und habe begonnen ein Gryptoprogramm zu erstellen. Es arbeitet schon gut und ist fast fertig, bei einigen Funktionen hänge ich jedoch und brauch eure Hilfe!

Kurz einen Einblick in das Appdesign:
-Startbildschirm (wählen verschlüsseln/Entschlüsseln)
-Verschlüsseln:
-Angeben eines Textes
-Angeben einer Verschlüsslungszahl (4stelliger 1. Schlüssel)
-Über ein Kontext Menü mit setContentView eine Methode wählen
(Im Moment sind es 4 Buttons zum wählen, neue soll der User aber
dynamisch generieren können)
-Wenn er auf einen Button drückt kommt er aus dem Kontextmenü heraus
und erhällt die verschlüsselte Nachricht
-Entschlüsseln: Kurz: Das gleiche wie verschlüsseln etwa

Jetzt das Problem: Auf dem Verschlüsseln Layout befinden sich:
- EditText Nachricht
- EditText Verschlüsslungszahl
- Button Kontextmenü
- Button Letzte Aktion
- Textview Lösung

Der Nutzer soll also auch anstadt dem Kontextmenü die zuletzt verwendete Verschlüsslungsmethode wählen können (da diese ihm vielleicht am besten gefällt und er somit nicht immer den Extraklick über das Kontextmenü braucht.) Hier kommen meine Probleme.

1. Der Button soll seinen Namen ändern und zwar zu zum beispiel: "Zuletzt verwendet: Qlc" Dies soll dann immer der Name der zuletzt verwendeten Methode sein, auch nach einem Appminimieren oder neustart
2. Der Button brauch eine neue Funktion, muss also die Funktion code() ausführen, aber je nach zuletzt verwendeter Methode mit einer anderen order Variable also zb:
ABC Methode: public void abc(View view){order = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ ÄÖÜäöüß.,?!";this.code(view); }

bei anderen Methoden gibt es hier andere order Variablen.
Erst mal vielen dank, das ihr all das gelesen habt ;) und ich hoffe ihr könnt mir helfen und ich bin hier überhaupt richtig. Bin bis jetzt ohne Foren klar gekommen aber hier hänge ich wirklich, selbst nach paar Stunden googeln (mir fehlt teilweise auch das Hintergrundwissen warum etwas so ist, also gebt bitte für Anfänger erklärte Antworten ;) ). Bei Verständnissfragen wo das Problem liegt meldet euch einfach, habe versucht es best möglichst zu erklären ;) Danke für eure Zeit! Euer MagicFighter
 
Hallo, ich glaube keiner ihr versteht Dein Problem hier ganz. Möchtest du den Code dafür haben?


Zu Krypto:

Das ist ein Thema für sich. Verschlüsslungen und wie man sie vernünftig implementiert ist ein komplexes Thema. Da kann man sehr viel falsch machen. Als Anfänger sollte man, wenn man es nicht dringend braucht, erst mal ein Bogen herum machen. Und sich statt dessen mit den Feinheiten von Java und Android vertraut machen. Was ich denke, bei Dir der bessere Weg wäre.


Es gibt ein paar Klassen unter Java, die Dir beim Verschlüsseln helfen. Oder es gibt auch ein paar Opensource Projekte, die fertige Verschlüsselungsverfahren haben.
 
ich bin nicht so vertraut mit Kryptografie. Ist die Order einfach nur ein String? Den könntest du ja als Parameter der Methode mitgeben. als
Code:
public void abc(View view, String order){ 
... 
}

oder falls das nicht möglich ist, kannst du den die order auch als private Attribut speichern.

also so
Code:
private String order;
	
public String getOrder() {
	return order;
}

public void setOrder(String order) {
	this.order = order;
}

Den String könntest du dann über SharedPreferences speichern, damit er beim nächsten Start noch da ist
 
Ok vielen dank an alle, das Shared Preferences hat mir den Anhaltspunkt zum googeln gegeben, habe es jetzt funktionell gelöst, auch wenn nicht besonders elegant und zwar für die Nachwelt folgendermaßen:
public void abc(View view){this.saveOrder(view,"Zuletzt verwendet: abc(10% sicher)", "abcde...");this.code(view); }

und später dann:
public void saveOrder(View v, String Name, String NewOrder){

SharedPreferences settings = getSharedPreferences("SaveOrder", 0);
SharedPreferences.Editor editor = settings.edit();

editor.putString("Schlüssel", NewOrder);
editor.putString("Schlüssel2", Name);
editor.commit();




String name=settings.getString("Schlüssel2", "");
Button lastButton = (Button) findViewById(R.id.button3);
lastButton.setText(name);



}

und in der Verschlüsslung dann das order extrahiert wie obendrüber den buttonname. Außerdem im OnCreate die Buttonwiedergabe eingefügt(letzter Teil im saveOrder()) damit er einen Namen hat.


Danke nochmal für die schnelle Hilfe, als nächstes kaue ich an ner dynamischen Buttongenerierung rum, falls mir da wieder der Funke fehlt, der überspringen muss melde ich mich nochmal in nem neuen Threat.

Das ist ein Thema für sich. Verschlüsslungen und wie man sie vernünftig implementiert ist ein komplexes Thema. Da kann man sehr viel falsch machen. Als Anfänger sollte man, wenn man es nicht dringend braucht, erst mal ein Bogen herum machen. Und sich statt dessen mit den Feinheiten von Java und Android vertraut machen. Was ich denke, bei Dir der bessere Weg wäre.

Danke für den hinweiß, mache aber auch keine Programmkrypto sondern mehr so eine Nachrichtengrypto für Whatsapp oder so. Ist ein von mir erdachter auf Primzahlen basierender, zumindest für Laien sicherer Algorytmus den ich mir während des Franz Unterrichts ausgedacht habe ;). Trotzdem danke für den Tipp, habe aber jetzt die Demo 95% und Vollversion 85% Fertig, da beende ich es auch :D
 
Verschlüsselung:

mache aber auch keine Programmkrypto sondern mehr so eine Nachrichtengrypto für Whatsapp oder so
Das macht kein Unterschied. Krypto ist Kryoto. Wenn das für den privaten Bedarf ist, kann man gerne mal was ausprobieren. Da du von Demo- und Vollversion redest, gehe ich mal davon aus, dass du die App veröffentlichen willst (Vielleicht sogar im Appstore). Spätestens dann erwarten die Leute, das die App macht, was sie verspricht. Nämlich das die App die Daten sicher verschlüsselt.

Vielleicht helfen dir folgende Beiträge, deine App zu verbessern:

Android Encryption with the Android Cryptography API - Developer.com

?Security with HTTPS and SSL | Android Developers


Zum Code:

Statt eine Button solltest du lieber ein TextView benutzen. Das sieht bei Text ausgaben besser aus. Der Textview kann auch ein OnClickListener haben. Oder ein TextView und ein Button.

Bei deiner dynamischen Buttongenerierung dürfte Dir der LayoutInflater helfen:

Android LayoutInflater - Dynamically Add and Remove Views using Java code

What does Layout Inflater in Android do? - Stack Overflow
 
danke, habe jetzt die nächste Frage, glaube aber dafür muss ich neuen Threat auf machen, und zwar:
-Kann ich an der Android Tastatur einen Button hinzufügen, der IN ANDEREN APPS (zum beispiel Whatsapp) existiert und wenn betätigt das momentan geschriebene verschlüsselt und dann verschlüsselt sendet, in einem Vorgehen das in in meiner APP definiert werden kann(also welche order genommen wird)? Dieses Feature will ich unbedingt und es gibt ja genug Apps die Änderungen an der Tastatur durchführen. Bitte gibt mir mal wenn ihr wisst wie es geht, einige Stichworte zum Googeln ;) Oder wenn ihr wollt einen Teil des benötigten Quelltextes. Würde das dann auch nach einem Neustart funktionieren wenn meine App noch nicht gestartet wurde?
 
Dazu müsstest du eine eigene "Tastatur App" bauen.
Creating an Input Method | Android Developers

Buttons hinzufügen geht meines wissens nicht, du kannst ja auch nicht wissen welche Tastatur der User gerade benutzt, er könnte ja auch eine Hardwaretastatur angeschlossen haben. (Gut, dann bringt eine eigene Tastatur auch nix ;))
 
kann ich da mich nicht auf die Standarttastatur beziehen und da was hinzufügen, oder die kopieren und ein Button adden?
 
ne so einfach ist das nicht.
Dann könnte ja jeder einfach die tastatur ändern.

Das Problem mit der Tastatur ist nämlich (das sagt dir auch Android, wenn du eine tastatur aktivierst), dass diese jeden Tastenanschlag mitlesen kann (und natürlich auch muss) TastaturApps sind somit quasi immer mit vorsicht zu genießen.

Es gibt im SDK meine ich eine Tastatur Beispiel App, die könntest du natürlich nutzen und dort noch einen Button hinzufügen.
Die User müssten dann aber deine Tastatur einstellen um den Button zu sehen.

Und es gibt auch nicht DIE standard tastatur, jeder Hersteller packt da ja seine eigene Tastatur mit hinzu.
 
ok, und wie müssen die das Einstellen, kann ich das in meiner App machen oder mit nem widget, oder müssen die da was in ihren Handyeinstellungen machen?
 
MagicFighter96 schrieb:
ok, und wie müssen die das Einstellen, kann ich das in meiner App machen oder mit nem widget, oder müssen die da was in ihren Handyeinstellungen machen?

in den systemeinstellungen deine tastatur auswählen.

bin mir nicht sicher, aber vllt kann man das auch so machen, dass deine app das automaitsch so einstellt
 

Ähnliche Themen

4
Antworten
10
Aufrufe
1.080
jogimuc
J
Zurück
Oben Unten