Mit getAssets() gibt den Fehler "die Methode getAssets() ist nicht definiert für den Typ ClassName"?
Ich versuche, eine Datei zu öffnen, die im Ordner "assets". Aber mit getAssets() gibt die Fehlermeldung oben angegeben. Ich weiß, dass ich zu Durchlaufen haben, den Kontext aus einer anderen Tätigkeit, aber ich kann das nicht tun, entweder, da dann eine andere Fehlermeldung kommt-"Die Methode onCreate(SQLiteDatabase, Kontext) vom Typ ClassName muss überschreiben oder implementieren Sie eine Supertyp-Methode". So komme ich nicht weiter. Gibt es eine bessere Möglichkeit zu eröffnen, dass die Datei? Hier ist die Zeile:
InputStream is = getAssets().open("file1.txt");
*Hinweis: ClassName ist nicht eine Tätigkeit, es ist nur eine Klasse, so getAssets() nicht funktionieren kann, ohne dabei den Kontext aus einer anderen Aktivität.
Edit: Hier ist die Klasse und die onCreate-Erklärung:
public class DatabaseHandler extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase db) {//some stuff
InputStream is = getAssets().open("file1.txt");
//more stuff
}
}
Ich fügte hinzu, die Zeile
InformationsquelleAutor Tom Wong | 2013-03-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
getAssets()
ist eine Methode, die aufContext
.Da Sie lehnte fügen Sie den Quellcode in denen dies geschieht, ist es schwierig, Ihnen zu helfen.
Genauer gesagt, es ist eine Unterklasse von
SQLiteOpenHelper
.Einen
SQLiteOpenHelper
übergeben bekommt eineContext
an seinen Konstruktor übergeben, die Sie überschreiben müssen.Jenseits all dies, wenn Ihr Ziel Paket eine Datenbank mit Ihrer Anwendung, bitte verwenden Sie
SQLiteAssetHelper
, als es hat das problem gelöst.InformationsquelleAutor CommonsWare
Wie etwa:
InformationsquelleAutor Lefteris
Verwenden
getContext()
Methode. SetgetContext().getAssets()
. Ich hoffe, dass es funktioniert .Eigentlich getAssets() ist eine Methode, die sich nach dem Kontext .Für mehr details besuchen Sie Hier
InformationsquelleAutor IntelliJ Amiya