2016-05-12 7 views
0

Ich bin absoluter Anfänger! und ich weiß nicht, wie ich diese Art von Methoden verwenden soll. Bitte hilf mir, wenn du kannst.Wie kompliziere ich Methoden wie für die Aktualisierung von db?

Ich habe eine Klasse mit dem Namen „Database“ innerhalb dieser Klasse, ich habe diese Methode:

// Update Database function 
public void UpdateNote(long id, String title, String note, String counts, String limits) { 
    ContentValues editCon = new ContentValues(); 
    editCon.put(TITLE, title); 
    editCon.put(NOTE, note); 
    editCon.put(COUNTS, counts); 
    editCon.put(LIMITS, limits); 

    open(); 
    database.update(TABLE_NAME, editCon, ID + "=" + id, null); 
    close(); 
} 

Ich möchte diese Methoden auf eine andere Klasse verwenden, aber wenn ich schreibe dies auf meine anderen Klasse:

   DatabaseConnector.UpdateNote(rowID, null, null, null, null); 

eclipse sagt, dass ich diese Methode statisch machen sollte, und wenn ich diese Methode statisch machen, diese Teile des Verfahrens auf „Database“ Klasse, will auch statisch sein:

open(); 
    close(); 

und wenn ich sie auch statisch mache. die ganze Klassen ruiniert und viele Fehler bekommen ...

jetzt habe ich diese Fragen:

1-, wie ich diese Methoden auf meine anderen Klassen verwenden können, ohne dass sie statisch machen oder die ganze Sache zerstören ...

2- Wie soll ich die Methode schreiben, um nur eines der Felder zu aktualisieren? (Die "Counts") ...

ich weiß nicht, was zu schreiben, nachdem das:

DatabaseConnector.UpdateNote (rowID, null, null, null, null);

Danke euch allen.

+0

Warum sind Sie können sie nicht in anderen Klassen verwenden? Was sagt die Sonnenfinsternis? –

+1

Das liegt daran, dass Sie die Methode auf 'DatabaseConnector' (die Klasse) aufrufen. Stattdessen sollten Sie eine Instanz dieser Klasse erstellen (oder ihre Factory zum Abrufen einer Instanz verwenden) und den Aufruf von "UpdateNote" mithilfe der Instanz durchführen - nicht die Klasse selbst. Versuchen Sie, den Code zu suchen, um zu sehen, wie diese Methode an anderen Stellen aufgerufen wird, und führen Sie das gleiche aus. – alfasin

+0

Was ist eine * komplizierte Methode *? Handelt es sich um [Code-Verschleierung] (https://en.wikipedia.org/wiki/Obfuscation_%28software%29)? – Andreas

Antwort

0

Stellen Sie sicher, UpdateNote()ist nicht statisch, dann, um es zu benutzen, um eine Instanz der Klasse zu erstellen:

DatabaseConnector databaseConnector = new DatabaseConnector(null); 

und es verwenden, die Methode aufzurufen:

databaseConnector.UpdateNote(rowID, null, null, null, null); 
Verwandte Themen