À l'aide de getAssets() donne le message d'erreur “La méthode getAssets() n'est pas défini pour le type d'un nom de Classe”?
Je suis en train d'essayer d'ouvrir un fichier qui est dans le dossier assets. Mais à l'aide de getAssets() donne l'erreur mentionnée ci-dessus. Je sais que je dois passer le cadre d'une autre activité, mais je ne peux pas le faire comme à l'époque une autre erreur vient-"La méthode onCreate(SQLiteDatabase, Contexte) de type ClassName doit remplacer ou de mettre en œuvre un supertype méthode". Donc je suis coincé. Est-il une meilleure façon de l'ouverture de ce fichier? Voici la ligne:
InputStream is = getAssets().open("file1.txt");
*Remarque: le nom de la Classe n'est pas une activité, c'est juste une classe, getAssets() ne peut pas fonctionner sans passer contexte à partir d'une autre activité.
Edit: Voici la classe et le onCreate de la déclaration:
public class DatabaseHandler extends SQLiteOpenHelper {
@Override
public void onCreate(SQLiteDatabase db) {//some stuff
InputStream is = getAssets().open("file1.txt");
//more stuff
}
}
J'ai ajouté la ligne
OriginalL'auteur Tom Wong | 2013-03-23
Vous devez vous connecter pour publier un commentaire.
getAssets()
est une méthode deContext
.Puisque vous avez refusé le coller dans le code source où cela se produit, il est difficile de vous aider.
Plus précisément, c'est une sous-classe de
SQLiteOpenHelper
.Un
SQLiteOpenHelper
reçoit unContext
à son constructeur, qui vous avez besoin pour remplacer.Au-delà de tout cela, si votre objectif est de package d'une base de données avec votre application, veuillez utiliser
SQLiteAssetHelper
, comme il l'a résolu ce problème.OriginalL'auteur CommonsWare
Comment sur:
OriginalL'auteur Lefteris
Utilisation
getContext()
Méthode. EnsemblegetContext().getAssets()
. J'espère que ça fonctionne .En fait getAssets() est une méthode de Contexte .Pour plus de détails, vous pouvez visiter Ici
OriginalL'auteur IntelliJ Amiya