Android getResource в неактивный класс из неактивного класса? - PullRequest
4 голосов
/ 03 января 2012

Я получил этот следующий метод в классе, отличном от Activity, мой код указан ниже.

public class ReadTextByLineNo  {

public void setContext(Context _context) {
    if (context == null) {
        context = _context;
    }
}
public String getTextByLine(int Filename,int LineNumber)
{


    String output="";
    String line="";
    int counter=1;
    try
    {
         InputStream in = context.getResources().openRawResource(Filename);
        //InputStream in = assetManager.open(Filename);
        if(in!=null)
        {
            InputStreamReader input = new InputStreamReader(in);
            BufferedReader buff = new BufferedReader(input);
            while((line=buff.readLine())!=null)
            {
                if(counter ==LineNumber){
                    output=line;
                }counter++;
            }in.close();
        }else{
            Log.e("Input STREAM PROBLEM", "TEXT IS NULL NULL NULL NULL NULL");
        }
    }catch(Exception e)
    {
        //log
    }

    return output;
}

** Я вызываю этот метод из NON_ACTIVITY CLASS LIKE THIS **

class sample implements Isample
{
ReadTextByLineNo read = new ReadTextByLineNo();
String subMsg =  read.getTextByLine(R.raw.subtitle, storySceneId);
//the above string is to called from an activity called Layout 


}

Как использовать ресурсы / контекст из неактивного класса?Я не могу использовать контекст в конструкторе, так как я также вызываю метод не из класса Activity.поэтому я не могу установить read.setContent (this);где я получил метод setContext в своем классе ReadtextByLineNo, спасибо за помощь.

Пожалуйста, помогите мне получить контекст / ресурс в примере класса, и пример по коду приветствуется

1 Ответ

6 голосов
/ 03 января 2012
public class ReadTextByLineNo  {
    private static Context context;

    public static void setContext(Context mcontext) {
        if (context == null)
            context = mcontext;
    }
}

когда ваше приложение запускается, просто инициализируйте этот контекст, вызвав

ReadTextByLineNo.setContext(getApplicationContext());

от вашей основной деятельности ..

Наслаждайтесь ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...