2012-04-02 19 views
0

Ich versuche, eine Fehlermeldung zu haben, wenn die Verwendung eine Nummer für ein Element eingibt, das nicht in der Datenbank gelöscht werden kann. Ich habe es bekommen, so dass der Benutzer ein Element aus der Datenbank löschen kann und ich denke, verwendet den Versuch zu fangen, um einen Laufzeitfehler zu vermeiden, wenn die Nummer nicht existiert. Was ich versuche, ist ein Toast-Popup, wenn der Benutzer eine ungültige Nummer eingibt. Ich habe mir schon andere ähnliche Beiträge auf Stack angeschaut und habe kein Glück. Hier ist mein Code. Wenn Sie mehr Code schreiben möchten, lassen Sie es mich wissen.Toast in einem AlertDialog in einem Versuch/fangen

public void onClick(DialogInterface dialog, int which) { 
    try { 
     String id=idNum.getText().toString(); 
     long primaryId=Long.parseLong(id); 

     info.open(); 
     info.deleteInspection(primaryId); 
     info.close(); 
     dbInfo(); 
    } catch(Exception e) { 
     Toast.makeText(getApplicationContext(), "Number not found", Toast.LENGTH_SHORT).show(); 
    } 
} 
+0

Sie geben können 'info.deleteInspection (primaryId);' einen Rückgabewert und Show der Toast, wenn er etwas zurückgibt, was bedeutet, dass die Nummer nicht existiert. Das Abfangen von Exceptions ist kein sauberer Ansatz. – zapl

Antwort

1

Sie könnten Ihre deleteInspection() Methode zurückgeben einen Booleschen Wert machen, ob zu sagen oder nicht gegeben ID gelöscht. Dann überprüfen Sie es in Ihrer onClick Methode:

boolean result = info.deleteInspection(primaryId); 
if(!result) { 
    Toast.makeText(getApplicationContext(), "Number not found", Toast.LENGTH_SHORT).show(); 
} 
+0

Danke, ich habe Probleme herauszufinden, wie ich meine delete-Anweisung in einen booleschen Wert umwandeln kann. Irgendwelche Ideen? – Aaron

+0

@Aaron Das SQLiteDatabase-Objekt hat eine 'delete()' Methode, es gibt die Anzahl der betroffenen Zeilen zurück (0 oder 1 in Ihrem Fall). –

0

Es ist nicht zu versuchen,/hier zu fangen, dass Sie „Nummer nicht gefunden“

das, was Sie brauchen stellen ist die Rückkehr das Ergebnis aus Ihrer Datenbank dass es diese ID gefunden hat zu löschen oder nicht

Wie Soren.Qvist sagte.

benötigen Sie einen Wert aus der Datenbank, um Ihren Code zurückzukehren (vielleicht -1, falsch, etc.) und prüfen Sie es

Verwandte Themen