2012-01-02 2 views
4

Я получил следующий метод в классе non Activity, мой код ниже.Android getResource в классе non activity из класса Non 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 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 


} 

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

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

ответ

6
public class ReadTextByLineNo { 
    private static Context context; 

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

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

ReadTextByLineNo.setContext(getApplicationContext()); 

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

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

+0

IM, не вызывающий метод из как использовать это в классе Non Activity ReadTextByLineNo.setContext (getApplicationContext()); – optimus

+0

чувак, не вызывайте этот метод из non Activity, вызывайте этот метод из любой другой активности только для установки контекста, теперь не говорите мне, что у вас нет активности в вашем приложении. : D, назовите его из вашей первой активности, просто чтобы установить контекст, это просто ... – AAnkit

+0

soory Я не понял сначала, но работал отлично, thx много чувак ... – optimus

Смежные вопросы