Das hint-Feature ist mir durchaus bekannt. Jedoch steht im EditText nicht irgendwie "Gib deinen Namen ein" oder so ähnlich, sondern es steht, der zuletzt eingegebene Name (innerhalb der App). Wenn der Benutzer also nichts ändert, wird erneut dieser Name verwendet. Wenn aber jemand anders seinen Namen eingibt, sollte der Text gleich gelöscht werden beim hineinklicken...
Beiträge von drumm3r
-
-
Ich habe ein EditText-Feld in dem der Anwender seinen Namen eingeben kann/muss. Um das ganze etwas komfortabler zu machen, habe ich den OnClick-Listener des EditText-Feldes so überschrieben, dass das Feld leer wird, wenn der Benutzer hinein klickt:
Java//txtName ist das EditText-Feld txtName.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { txtName.setText(""); } });
Wenn der Benutzer nun hineinklickt (Landscape-Modus) erscheint die Tastatur im Vollbild. Jetzt funktioniert leider der OK-Button nicht mehr, sobald die Eingabe beendet ist (siehe Bild unten). Es passiert einfach nichts wenn ich auf den OK-Button klicke. Nehme ich den oben geposteten onClick-Listener wieder raus, funktioniert der OK-Button in der Tastatur wieder. Hat jemand eine Ahnung woran das liegen könnte?
Gruss drumm3r
[Blockierte Grafik: http://img198.imageshack.us/img198/5439/sc20110915161332.jpg]
-
Das wars, vielen Dank =) Die genannten Methoden funktionieren zwar so nicht, aber ich habs durch verschieben der myInput.close()-Methode hinbekommen.
Grüsse
-
Hallo zusammen,
Ich habe in meinem Programm eine Funktion, die eine Datenbank aus dem Assets-Order in den data-Ordner schreibt:Java
Alles anzeigenfinal static void copyDBFromAsset() throws IOException { InputStream myInput = StartActivity.AssetDB; String outFileName = StartActivity.DB_PATH + StartActivity.DB_NAME; OutputStream myOutput = new FileOutputStream(outFileName); byte[] buffer = new byte[1024]; int length; while ((length = myInput.read(buffer)) > 0) { myOutput.write(buffer, 0, length); } myOutput.flush(); myOutput.close(); myInput.close(); }
Wenn ich die Funktion aufrufe, funktioniert alles problemlos und die Datenbank wird erstellt. Wird die Funktion dann ein zweites Mal aufgerufen, so bekomme ich eine "NullPointerException at android.content.res.AssetManager.readAsset(Native Method)" (bei der While-Schlaufe).
Es kommt nicht darauf an, ob ich dazwischen etwas mache, oder die Funktionen gleich zwei mal hintereinander aufrufe, ich bekomme immer die Exception.
Ich habe mir dann mal alle Variablen ausgeben lassen vor der While-Schlaufe, beim 1. sowie beim 2. mal:Variable *************************** Wert Beim 1. Aufruf ***************************** Wert beim 2. Aufruf
myInput ****************** (...)AssetInputStream@44c11178****************************(...)AssetInputStream@44c11178
outFileName*************/data/data/com.project.org/databases/myDB*******/data/data/com.project.org/databases/myDB
myOutput*****************(...)FileOutputStream@44c1f178***********************(...)FileOutputStream@44c1ffa0
buffer*****************************************[B@44c1f4a8 ************************************************[B@44c202d0Kann mir jedoch nicht vorstellen, dass das etwas damit zu tun hat.... Hat jemand eine Idee, woran das liegen könnte?
Grüsse
-
Ist zwar schon zu spät, aber hier hätte es sonst noch ein Tutorial für die Verwendung einer DB aus den Assets: