2012-10-21 120 views
5

如何解決此錯誤。底部的所有三個字符串都會得到以下錯誤:「方法getString(int)未定義爲類型Apps」。請幫助,即時通訊這樣的菜鳥。該類型的方法getString(int)未定義Apps

package com.actionbarsherlock.sample.fragments; 

import android.content.Context; 
import android.content.res.Resources; 


public final class Apps { 
/** 
* Our data, part 1. 
*/ 
public static final String[] TITLES = 
{ 
     "title1", 
     "title2", 
     "title3" 
}; 

/** 
* Our data, part 2. 
*/ 
public static final String[] DIALOGUE = { 

    getString(R.string.text1), 

    getString(R.string.string2), 

    getString(R.string.string3) 

}; 
} 
+0

你試圖調用一個不存在的方法。實際上,我們無法幫助您在不知道自己想要做什麼的情況下進行修復。 – Vulcan

+0

你是否想延伸一些東西?你想要繼承什麼? – RyanG

+0

幫助我的人說:「getString來自活動類,所以你的類需要從活動繼承,或者你需要從一個已經從活動繼承的類中調用getString。」 – idroid8

回答

5

第一個getString不是一個靜態方法,你是在靜態環境中調用它,這是不能做到的。

其次,getString方法是Resources類的一部分,您的類不會擴展Resources類,因此無法找到該方法。

我認爲使用其構造函數將Resources類的實例解析到您的Apps類將是您的最佳選擇。

事情是這樣的:

public final class Apps { 

    public Apps(Resources r){ 
    DIALOGUE = new String[]{ 
     r.getString(R.string.text1), 
     r.getString(R.string.string2), 
     r.getString(R.string.string3)}; 
    } 


/** 
* Our data, part 1. 
*/ 
public static final String[] TITLES = 
{ 
     "title1", 
     "title2", 
     "title3" 
}; 

/** 
* Our data, part 2. 
*/ 
public static String[] DIALOGUE; 
} 
+0

擺脫了錯誤,但我必須解決的其他事情我會brb與結果:) – idroid8

+0

mhhh當我選擇一個類別,然後應用程序標題的應用程序的力量關閉。我玩更多,但你的答案是最有幫助的。 – idroid8

24

合格Context context

一個實例,然後使用

context.getResources().getString(R.string.text1) 

這裏context是屬於你的當前活動。

+0

這解決了我的問題,謝謝 – Alaa

+0

我跟着這並重寫了Preferences.getBoolean(getString(R.string.pref_mypreference),false)Preferences.getBoolean(*** getContext()。getString(R.string.pref_mypreference ),假)和鮑勃成爲我的叔叔:D(***不是字面的,但只顯示了什麼改變);) –

相關問題