2017-05-24 28 views
0

我想從res /字符串獲取字符串源以在Pageradapter中使用。[Android]從Pageradapter獲取資源中的字符串

很多帖子都說我發了這段代碼。

public class DonImageClass extends PagerAdapter{ 

.......... 
private static Activity myactivity; 
public DonImageClass(Activity myactivity){ 
    this.myactivity = myactivity; 
} 


String imageSource = myactivity.getResources().getString(R.string.changUrla); 
........... 

但是由於這句話它返回null異常;

String imageSource = myactivity.getResources().getString(R.string.changUrla); 

我怎樣才能得到正確答案?

我一直在這個問題上停留了一個多月。

它拋出這樣的零點異常;

E/AndroidRuntime:致命異常:主要 過程:org.androidtown.realchangdeokgung,PID:4560 了java.lang.RuntimeException:

+1

爲什麼'myactivity'' static''? –

+0

請附上您收到的crashlog。 –

+0

其實我並沒有100%的理解它......我只是在網上查了一下。如果你確實有什麼問題,請告訴我,兄弟。 – dalami0i

回答

0

請這個嘗試我的朋友

getResources().getString(R.string.yourstring) 

或使用

getApplicationContext().getResources().getString(R.string.yourstring) 
+0

謝謝我的朋友,但我做了幾次...也沒有工作..... – dalami0i

+0

然後你可以不用用戶靜態methodgetApplicationContext()。getResources()。getString(R.string.yourstring) –

0

請勿爲活動使用靜態字段。

如果你絕對需要結合語境,而不是活動的是使用SoftReference的,並獲得資源是這樣的:

public class DonImageClass extends PagerAdapter{ 

.......... 
private SoftReference <Context> mContext; 
public DonImageClass(Context context){ 
    this.mContext = new SoftReference<Context>(context); 
} 

Context context = mContext.get(); 
if (context != null) { 
    String imageSource = context.getResources().getString(R.string.changUrla); 
} 
........... 

你能描述你想要做什麼? 我會盡力爲您提供解決方案。

+0

我想從res/string獲取資源並將其放入pageradapter的URL(字符串)中。我嘗試了幾種方法,但是大多數方法都拋棄了我的零點例外......(我沒有檢查你的答案,但我的兄弟。) – dalami0i

+0

嗯....我無法得到你的SoftReference ...它是什麼?我應該讓另一個課程成爲SoftReference嗎?如果比,我應該把它放在什麼? – dalami0i

+0

import java.lang.ref.SoftReference; –

0
String imageSource = myactivity.getResources().getString(R.string.changUrla); 

將其替換爲下面給定的代碼。

String imageSource = getResources().getString(R.string.changUrla); 
+0

嗯...我不確定...如果我刪除上下文或活動(此時爲myactivity),我會從androidstudio獲取紅線。是否有可能正常工作? – dalami0i

相關問題