1

このコードを使用して、valuesフォルダーから文字列配列をプルしています。

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

ただし、これを実行すると、これらのコード行でnullポインター例外が発生します。文字列配列をプルするためのより良い方法はありますか、それとも私のコードにエラーがありますか?

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 に答える