1

我正在使用此代码从我的值文件夹中提取我的字符串数组:

String achievementNames[] = getResources().getStringArray(R.array.achieveString);
    String achievementDescriptions[] = getResources().getStringArray(R.array.achieveDescript);

但是,当我运行它时,它会在这些代码行上给我一个空指针异常。有没有更好的方法来提取字符串数组或者我的代码中有错误?

4

2 回答 2

2

getResources()除非onCreate()触发了回调,否则您不应调用。

public class StackStackActivity extends Activity 
{

    String[] myArray = getResources().getStringArray(R.array.glenns); // This returns null

    public StackStackActivity()
    {

        myArray = getResources().getStringArray(R.array.glenns); // This returns null also
    }

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        myArray = getResources().getStringArray(R.array.glenns); // Returns an array from resources
    }
}
于 2012-06-20T00:30:24.547 回答
0

确保将Context对象传递到调用此方法的任何位置(因为我的猜测是getResources()返回null)。有了这个Context对象,你可以调用,

context.getResources().getStringArray(...);
于 2012-06-20T00:26:12.317 回答