0

ユーザーにいくつかのテキストビューを表示するアプリを開発しています。テキストを配列に保存し、リストビューから選択した項目に応じて情報をロードすると考えました

各 StringArray には名前と 4 つの項目があります。どの配列を使用するかを知り、それに応じてテキストを設定するために if ステートメントを使用しています。

しかし、私はそれを正しく理解できないようです..LogCatは私にFATALEXCEPTIONを与え、アクティビティにアクセスしようとするとプログラムがすぐに閉じます。

使用コード

if (s.equals("A_DuGamla")) {
    String[] banan_arr = getResources().getStringArray(R.array.hello);
    songname.setText(banan_arr[0]);
    lyricsby.setText(banan_arr[1]);
    melody.setText(banan_arr[2]);
    lyrics.setText(banan_arr[3]);
} else if (s.equals("A_Kungs")) { 
// And so on..

そして、StringArray

<string-array name="hello">
    <item>Visa</item>
    <item>Text</item>
    <item>Melodi</item>
    <item>Text</item>
</string-array>

前もって感謝します

エラーログの更新

05-13 21:05:20.771: E/AndroidRuntime(25903): FATAL EXCEPTION: main
05-13 21:05:20.771: E/AndroidRuntime(25903): java.lang.RuntimeException: Unable toinstantiate activity ComponentInfo{se.noxious.visboken/se.noxious.visboken.R1_TradVisor}: java.lang.NullPointerException
05-13 21:05:20.771: E/AndroidRuntime(25903):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1743)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1851)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at android.app.ActivityThread.access$1500(ActivityThread.java:132)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1038)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at android.os.Handler.dispatchMessage(Handler.java:99)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at android.os.Looper.loop(Looper.java:150)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at android.app.ActivityThread.main(ActivityThread.java:4277)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at java.lang.reflect.Method.invokeNative(Native Method)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at java.lang.reflect.Method.invoke(Method.java:507)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at dalvik.system.NativeStart.main(Native Method)
05-13 21:05:20.771: E/AndroidRuntime(25903): Caused by: java.lang.NullPointerException
05-13 21:05:20.771: E/AndroidRuntime(25903):    at android.preference.PreferenceManager.getDefaultSharedPreferencesName(PreferenceManager.java:356)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at android.preference.PreferenceManager.getDefaultSharedPreferences(PreferenceManager.java:351)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at se.noxious.visboken.R1_TradVisor.<init>(R1_TradVisor.java:19)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at java.lang.Class.newInstanceImpl(Native Method)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at java.lang.Class.newInstance(Class.java:1409)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at android.app.Instrumentation.newActivity(Instrumentation.java:1040)
05-13 21:05:20.771: E/AndroidRuntime(25903):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1735)
05-13 21:05:20.771: E/AndroidRuntime(25903):    ... 11 more
4

1 に答える 1

0

logcat の重要な行は次のとおりです。

at se.noxious.visboken.R1_TradVisor.<init>(R1_TradVisor.java:19)

ファイル R1_TradVisor.java の 19 行目を確認してください。ここにエラーがあります。その行で扱っているオブジェクトはすべてnull( NullPointerException) です。

于 2012-05-13T19:29:47.693 に答える