使用sharedpreferences我運行這個方法:用空指針異常的方法
private Button button1;
private Button button2;
private TextView textView1;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
checkIndex();
//這裏保存的喜好如果沒有//後程序的第二次創業 ,checkIndex();去那一聲
public void checkIndex(){
SharedPreferences prefs = getSharedPreferences(PRIVATE_PREF, 0);
String index = prefs.getString("scelta", "");
if (index == ""){
index();
}
else {
String scelta = prefs.getString("scelta", "");
int a = prefs.getInt("arraystart", 0);
int b = prefs.getInt("arrayend", 0);
int size = prefs.getInt(prog +"_size", 0);
String prog[] = new String[size];
for(int i=0; i<prog.length; i++)
prog[i] = prefs.getString(prog + "_" + i, null);
String titolo = prefs.getString("titolo", "");
int x = prefs.getInt("x", 0);
textView1.setText(""+a+" "+b+" "+titolo);
我已經textView1
一個空指針異常,我不明白爲什麼! (我花了很多時間但沒有)......爲什麼?謝謝!
的logcat:
11-30 21:49:42.806: E/AndroidRuntime(3739): FATAL EXCEPTION: main
11-30 21:49:42.806: E/AndroidRuntime(3739): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.perledisaggezza/com.example.perledisaggezza.MainActivity}: java.lang.NullPointerException
11-30 21:49:42.806: E/AndroidRuntime(3739): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
11-30 21:49:42.806: E/AndroidRuntime(3739): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
11-30 21:49:42.806: E/AndroidRuntime(3739): at android.app.ActivityThread.access$600(ActivityThread.java:130)
11-30 21:49:42.806: E/AndroidRuntime(3739): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
11-30 21:49:42.806: E/AndroidRuntime(3739): at android.os.Handler.dispatchMessage(Handler.java:99)
11-30 21:49:42.806: E/AndroidRuntime(3739): at android.os.Looper.loop(Looper.java:137)
11-30 21:49:42.806: E/AndroidRuntime(3739): at android.app.ActivityThread.main(ActivityThread.java:4745)
11-30 21:49:42.806: E/AndroidRuntime(3739): at java.lang.reflect.Method.invokeNative(Native Method)
11-30 21:49:42.806: E/AndroidRuntime(3739): at java.lang.reflect.Method.invoke(Method.java:511)
11-30 21:49:42.806: E/AndroidRuntime(3739): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
11-30 21:49:42.806: E/AndroidRuntime(3739): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
11-30 21:49:42.806: E/AndroidRuntime(3739): at dalvik.system.NativeStart.main(Native Method)
11-30 21:49:42.806: E/AndroidRuntime(3739): Caused by: java.lang.NullPointerException
11-30 21:49:42.806: E/AndroidRuntime(3739): at com.example.perledisaggezza.MainActivity.checkIndex(MainActivity.java:480)
11-30 21:49:42.806: E/AndroidRuntime(3739): at com.example.perledisaggezza.MainActivity.onCreate(MainActivity.java:149)
11-30 21:49:42.806: E/AndroidRuntime(3739): at android.app.Activity.performCreate(Activity.java:5008)
11-30 21:49:42.806: E/AndroidRuntime(3739): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
11-30 21:49:42.806: E/AndroidRuntime(3739): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
11-30 21:49:42.806: E/AndroidRuntime(3739): ... 11 more
11-30 21:51:08.107: E/Trace(3796): error opening trace file: No such file or directory (2)
你可以發佈完整的logcat嗎? –
此外,你不能比較字符串==,使用.equals()或檢查長度爲0. –
好吧我會修改(但現在的作品),謝謝。 –