2011-06-02 93 views
5

我處於這種情況,我必須將我的應用程序表單的drawable folder用作非活動類。我嘗試使用以下代碼的父級活動:如何從非活動類訪問drawable

ParentActivity pa = new ParentActivity(); 
Drawable d = pa.getResources()..getDrawable(R.drawable.icon);` 

但是,這會返回一個NulLPointerException。 我該如何做到這一點?

回答

12

將上下文對象作爲參數傳遞給非Activity類的構造函數。

然後使用該上下文對象來獲取資源。

public class MyClass { 
    Context context; 
    public MyClass(Context context) { 
     this.context = context; 
    } 

    public void urMethod() { 
    Drawable drawable=context.getResources().getDrawable(R.drawable.icon); 
    // use this drawable as u need 
    } 
} 
+1

它只是我或「R」或(Java中調用的任何資源)被導入到類中,所以這不是通用的? – 2015-07-01 02:54:07

+1

請注意,從API 22開始,獲取drawable的正確方法是: 'Drawable drawable = ContextCompat.getDrawable(context,R.drawable.icon)' – 2016-06-22 19:47:46

4
import com.(package-name).R; 

那麼你就可以訪問所有的繪製e.g R.drawable.icon。

相關問題