2013-12-20 11 views
6

Ich bin ein Modul, das von einer anderen Klasse erweitert, aber ich muss getBaseContext() verwenden. Wie kann ich es in meinem eigenen Modul verwenden? Wenn ich die Tätigkeit ausführen muß dann, wie das tun, wenn nicht, wie das Problem dankWie verwendet man getBaseContext() in der Klasse, die nicht erweitert Aktivität

public class TelcoModule extends KrollModule 
{ 
... 

     // Methods 
    @Kroll.method 
    public String GetTelco() 
    { 
      TelephonyManager tm =(TelephonyManager)getBaseContext().getSystemService(Context.TELEPHONY_SERVICE); 
      String operatorName = tm.getNetworkOperatorName(); 
      return operatorName ; 
      } 
} 
+4

nur den Kontext in Ihrem Konstruktor für die Klasse – tyczj

+1

'Context mContext; public TelcoModule (Kontextkontext) {mContext = Kontext; // mContext ..}' verwenden. pass wie 'neues TelcoModule (ActivityName.this)' – Raghunandan

Antwort

3

Wechsel lösen GetTelco einen Kontext param umfassen. Dann rufen sie Ihren verfügbaren Kontext mit von überall

public String GetTelco(final Context context) 
{ 
     TelephonyManager tm =(TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE); 
     String operatorName = tm.getNetworkOperatorName(); 
} 

Beispiel nannte es:

someView.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     String telcoName = myTelcoInstance.GetTelco(v.getContext()) 
    } 
}); 
+0

Mit Hilfe deines Kommentars könnte ich es lösen :) 'Kontext appContext = (Kontext) TiApplication.getInstance(); \t \t \t \t TelefonieManager tm = (TelefonieManager) ctx.getSystemService (Context.TELEPHONY_SERVICE); \t Zeichenfolge operatorName = tm.getNetworkOperatorName(); \t \t Return OperatorName; ' – Ehsan

1

Was ist mit ...

Context ctx = getActivity().getApplicationContext(); 
+0

Ihr funktioniert auch – Ehsan