2012-11-03 32 views
-1

我有class A,class B,它延伸到Activity。在Activity B中,我創建了一個方法fillVariable,如下所示,但是當我從Activity A調用此方法時,我得到nullPointerException在調用活動的方法時獲取異常

一個活動:

public class A extends Activity{ 

    B b; 

    public void onCreate(Bundle sc){ 
     setContentView(R.layout.first); 
     b = new B(); 
     b.fillVariable(); 
    } 
} 

B活動:

public class B extends Activity{ 

    Resources res; 

    public void onCreate(Bundle sc){ 
    } 

    public void fillVariable() { 
     res = this.getResources(); 
     String temp = res.getString(R.string.myString); 
    } 
} 
+2

你不能初始化一個活動,如b = new B(); – yogeshhkumarr

+0

那麼調用fillVariable的過程是什麼。 – sachit

+0

將fillVariable()的代碼放入A類中,它也會得到與B類相同的結果。 –

回答

0

你要通過this在您的A類,如b = new B(this);,因爲您呼叫的下一個活動,使他們需要活動的背景。

現在創建在B類中的上下文,如Context ctx

現在定義文件class b Constructor B,這樣的:

public B(A obj) { 
    // TODO Auto-generated constructor stub 
    this.ctx = obj; 
} 

而且在任何使用功能使用方面的資源OBJ,如:

public String temp; 
temp = ctx.getString(R.string.me); 

它的運行。享受...

相關問題