2012-06-05 91 views
1
Caused by: java.lang.NullPointerException 
at com.myapp.code.WordDescription.onRestart(WordDescription.java:685) 
at android.app.Instrumentation.callActivityOnRestart(Instrumentation.java:1245) 
at android.app.Activity.performRestart(Activity.java:3892) 
at android.app.Activity.performResume(Activity.java:3911) 
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2424) 

我不明白爲什麼我一直在WordDescription.onRestart上出現錯誤。 許多人抱怨武力密切的問題。有關如何解決此問題的任何線索?由於Android java.lang.RuntimeException:無法恢復活動

我覺得這一個是有關..

public class MyArrayAdapter extends ArrayAdapter<String> { 

    private final Activity context; 
    private final String[] aListText; 
    private final String [] meaningText; 

    public MyArrayAdapter(Activity context, String[] wordText, String[] meaningText) { 
     super(context, R.layout.desclist2, wordText); 
     this.context=context; 
     this.aListText= wordText; 
     this.meaningText=meaningText; 
    } 
} // ..... 

@Override 
public void onRestart(){ 
    super.onRestart(); 
    clickFlag = false; 
    clickWordFlag = false; 
    myArrayAdapter.notifyDataSetChanged(); <-- line 685 
} 
Handler handler = new Handler(){ <-- line 709 
    @Override 
    public void handleMessage(Message msg){ 
     progressDialog.dismiss(); 

     if{ .... 
     }else{ 
      myArrayAdapter = new MyArrayAdapter(WordDescription.this, wordArray, meaningArray); 
      listView.setAdapter(myArrayAdapter); 
     } 

    } 
+3

其中創建myArrayAdapter對象? –

+1

你不能在MyArrayAdapter類中調用notifyDataSetChanged類.insted在你創建它的對象的活動中調用它。 –

+0

哪裏是onCreate()代碼? –

回答

3

變化

myArrayAdapter.notifyDataSetChanged(); 

if(myArrayAdapter != null) 
     myArrayAdapter.notifyDataSetChanged(); 

我強烈建議你做什麼VIPUL沙阿在告訴他的評論。

1

嘗試像這樣...

myArrayAdapter = new MyArrayAdapter(WordDescription.this, wordArray, meaningArray); 
listView.setAdapter(myArrayAdapter); 
if(myArrayAdapter != null){ 
     myArrayAdapter.notifyDataSetChanged(); 
} 
相關問題