2010-07-30 43 views
0

首先我在我的strings.xml文件中聲明一個整數數組,並添加3項他們 然後使用該項目與約integerarrays INA的Android

private TextView Number12; 
Number12=(TextView)findViewById(R.id.TextView01); 
Resources r = getResources(); 
     int[] bases = r.getIntArray(R.array.UserBases); 
for(i=0;i<bases[i];i++) 
     { 
      Number12.setText(bases[i]); 
     } 

我得到了異常,請給我一些解決方案如何可以顯示陣列

07-30 11:30:10.020: ERROR/AndroidRuntime(657): FATAL EXCEPTION: main 
07-30 11:30:10.020: ERROR/AndroidRuntime(657): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.User_Interface/com.User_Interface.HelloWorld1}: android.content.res.Resources$NotFoundException: String resource ID #0x1 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at android.os.Handler.dispatchMessage(Handler.java:99) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at android.os.Looper.loop(Looper.java:123) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at java.lang.reflect.Method.invokeNative(Native Method) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at java.lang.reflect.Method.invoke(Method.java:521) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at dalvik.system.NativeStart.main(Native Method) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x1 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at android.content.res.Resources.getText(Resources.java:201) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at android.widget.TextView.setText(TextView.java:2817) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at com.User_Interface.HelloWorld1.onCreate(HelloWorld1.java:55) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
07-30 11:30:10.020: ERROR/AndroidRuntime(657):  ... 11 more 

回答

1

這裏的問題是,你直接傳遞給setText方法的整數。然後,它被稱爲setText(int)這意味着接收資源ID,而不是一個值。所以,你唯一需要做的下面是一個創建與整數String,以便將被調用的方法是setText(String)(這你想要什麼):

private TextView Number12; 
Number12=(TextView)findViewById(R.id.TextView01); 
Resources r = getResources(); 
int[] bases = r.getIntArray(R.array.UserBases); 
for(i=0;i<bases[i];i++){ 
     Number12.setText(Integer.toString(bases[i])); 
} 
+0

也就是說,或Integer.toString(鹼基[I]),這將稍微更有效。 – EboMike 2010-07-30 06:12:59

+0

你真是太棒了!它看起來好多了。我要編輯帖子。 – Cristian 2010-08-08 17:23:51

0

具有u設定的setContentView()在做這件事之前? 因爲在訪問任何資源之前未設置setContentView()時可能找不到資源錯誤。