2010-12-02 5 views
3

J'ai un problème avec l'appel de la fonction getResources() dans une classe standard. Toutes les importations doivent être là pour utiliser la fonction. Y a-t-il une classe spéciale dont j'ai besoin pour prolonger ma classe?getResources ne fonctionne pas/undefined Java

Merci pour votre aide.

package com.example.helloandroid; 

import android.app.Activity; 
import android.content.ContentValues; 
import android.content.Context; 
import android.content.ContextWrapper; 

import android.content.res.Resources; 

import android.content.Intent; 
import android.os.Bundle; 

//import android.content.res.Resources; 
import android.database.Cursor; 
import android.database.SQLException; 
import android.database.sqlite.SQLiteDatabase; 
import android.database.sqlite.SQLiteOpenHelper; 
import android.util.Log; 


public class DbAdapter { 

    public DbAdapter() { 
    Resources res = getResources();//error: The method getResources() is undefined for the type DbAdapter 
      //also tyed context.getResources() 
    } 


} 

Répondre

25

getResouces est un procédé de Context. Vous pouvez donc passer le contexte de votre constructeur de dbAdapter et appelez getResources de lui:

public DbAdapter(Context context) { 
    Resources res = context.getResources();//error: The method getResources() is undefined for the type DbAdapter 
      //also tied context.getResources() 
} 
+0

Utilisez getApplicationContext pour obtenir le contexte d'application que vous allez envoyer au constructeur DbAdapter. – Ben

0

Définir l'objet Context's puis appeler toutes les R.<Methods> avec l'aide de l'objet context.

Par exemple:

Context ctx; 
ctx.getResources().getString(R.string.Forgot_message); 

Au-dessus de code fonctionne pour moi.

Questions connexes