2017-04-11 32 views
0

我在主Activity中有以下代碼。訪問活動中的字符串數組資源

private List<Notes> chap = new ArrayList<>(); 
Resources res = getResources(); 
String[] chap1Titles = res.getStringArray(R.array.Introductiontitles); 
String[] chap1Notes = res.getStringArray(R.array.Introductionnotes); 
private void initializeData(){ 
chap.add(new Notes(chap1Titles[0],chap1Notes[0])); 
chap.add(new Notes(chap1Titles[1],chap1Notes[1])); 
} 

在Android Studio中它並沒有給這個code.But任何錯誤,當我發起的活動是什麼都不顯示和被停止。當我按照如下方式更改此代碼時,它工作。我不理解上述代碼的問題。

private List<Notes> chap = new ArrayList<>(); 
private void initializeData(){ 
chap.add(new Notes("Introduction ","About Introduction topic")); 
chap.add(new Notes("Motion ","About Motion topic")); } 

logcat的:

04-11 18:16:30.150 24035-24035 /? D/dalvikvm:延遲啓用CheckJNI 04-11 18:16:30.290 24035-24035 /? D/ActivityThread:handleBindApplication:com.ilearn.itemdetail 04-11 18:16:30.300 24035-24035 /? D/ActivityThread:setTargetHeapUtilization:0.75 04-11 18:16:30.300 24035-24035/com.ilearn.itemdetail D/ActivityThread:setTargetHeapMinFree:2097152 04-11 18:16:30.370 24035-24035/com.ilearn.itemdetail D/AndroidRuntime:關閉虛擬機 04-11 18:16:30.370 24035-24035/com.ilearn.itemdetail W/dalvikvm:threadid = 1:線程正在以未捕獲的異常退出(group = 0x415e3d58) 04-11 18:16 :30.380 24035-24035/com.ilearn.itemdetail E/AndroidRuntime:致命例外:main 進程:com.ilearn.itemdetail,PID:24035 java.lang.RuntimeException:無法實例化活動ComponentInfo {com.ilearn.itemdetail/com.ilearn.itemdetail.MainActivity}:java.lang.NullPointerException at android.app.ActivityThread.performLaunchActivity(Ac tivityThread.java:2126) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2249) at android.app.ActivityThread.access $ 800(ActivityThread.java:141) at android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1212) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread .java:5113) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit $其實現方法具dAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) at dalvik.system.NativeStart.main(Native Method) 引起來自:java.lang .NullPointerException at android.content.ContextWrapper.getResources(ContextWrapper.java:89) at android.view.ContextThemeWrapper.getResources(ContextThemeWrapper.java:78) at com.ilearn.itemdetail.MainActivity。(MainActivity.java:23 ) at java.lang.Class.newInstanceImpl(Native Method) at java.lang.Class.newInstance(Class.java:1208) at android.app.Instrumentation.newActivity(Inst (ActivityThread.java:1061) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2117) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2249) at android.app.ActivityThread.access $ 800(ActivityThread .java:141) at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1212) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper 。java:136) at android.app.ActivityThread.main(ActivityThread.java:5113) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java :515) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609) at dalvik.system .NativeStart.main(本機方法)

+1

您可以發佈您的logcat這裏 – Lokesh

+0

很抱歉,但我沒有,現在在Android Studio中 – Kokatesk

+0

按Alt + 6,你會得到logcats – Lokesh

回答

0

試試這個代碼:

private List<Notes> chap = new ArrayList<>(); 
Resources res = getResources(); 
String[] chap1Titles; 
String[] chap1Notes; 
private void initializeData() { 
    chap1Titles = res.getStringArray(R.array.Introductiontitles); 
    chap1Notes = res.getStringArray(R.array.Introductionnotes); 
    chap.add(new Notes(chap1Titles[0],chap1Notes[0])); 
    chap.add(new Notes(chap1Titles[1],chap1Notes[1])); 
} 
0

我認爲,你是初始化有問題。請以這種方式編寫代碼,然後再試一次:

private List<Notes> chap = new ArrayList<>(); 
String[] chap1Titles; 
String[] chap1Notes; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    initializeData(); 
} 

private void initializeData() { 
    chap1Titles = getResources().getStringArray(R.array.Introductiontitles); 
    chap1Notes = getResources().getStringArray(R.array.Introductionnotes); 
    chap.add(new Notes(chap1Titles[0], chap1Notes[0])); 
    chap.add(new Notes(chap1Titles[1], chap1Notes[1])); 
} 
相關問題