簡體   English   中英

具有NullPointer異常的方法

[英]Method with a NullPointer Exception

使用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 ,我不明白為什么! (我花了很多小時,但一無所獲)...為什么? 謝謝!

日志貓:

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)

執行checkIndex() textView1 = (TextView)findViewById(R.id.textView1); 之前正在調用checkIndex() textView1 = (TextView)findViewById(R.id.textView1); 您需要先初始化textView1,然后才能使用它,否則checkIndex()使用空引用。 因此,您需要添加textView1 = (TextView)findViewById(R.id.textView1); checkIndex()之前;

查看您的onCreate(...)方法。 看來你沒寫

setContentView(R.layout.some_layout_file)

包含具有textView1 id的TextView。 或者您應該使用

TextView textView1 = (TextView) findViewById(R.id.textView1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM