2013-07-23 22 views
0

我試圖追蹤播放的URL的歷史記錄,以及getCurrentPosition的值,以提供用戶恢復他們在該會話期間離開的視頻的能力。我的策略是使用兩個Arraylist來存儲數據,比較URL和通過意向附加組件填充以前的位置。Android - 用getter/setter調用Arraylist的空指針。

我收到了一個N​​PE的電話給我的getter。這裏是重要的部分:

的getter/setter類:

public class WatchedGS { 

private ArrayList videoURL = new ArrayList(); 
private ArrayList resumeTime = new ArrayList(); 

public ArrayList getURL() { 
return videoURL; 
} 

public void setURL(String videoURL) { 
    this.videoURL.add(videoURL); 
    Log.i("videoURL added: ", videoURL); 
} 

public ArrayList getresumeTime() { 
    return resumeTime; 
} 

public void setresumeTime(int time) { 
    this.resumeTime.add(time); 
    Log.i("videoTime added: ", ""+ time); 
} 
} 

媒體播放器,呼籲表面設置破壞,證實工作:

public void surfaceDestroyed(SurfaceHolder holder) { 
    watchedGS.setURL(urlString); 
    watchedGS.setresumeTime(player.getCurrentPosition()); 
    player.release(); 
    player = null; 
    finish(); 
} 

MainActivity調用get,造成NPE:

WatchedGS historyList; 

      if (videoHistory){ 
      int alSize = historyList.getURL().size(); 
      if (historyList.getURL().contains(url)) { 
       Log.i("it's there!", url); 
      } 

我確定我已經overloo提出了一些愚蠢的事情,並希望我所錯過的任何指針。先謝謝你。

+2

你初始化了'historyList'嗎? – Raghunandan

回答

1
WatchedGS historyList; 

     if (videoHistory){ 
     int alSize = historyList.getURL().size(); 
     if (historyList.getURL().contains(url)) { 
      Log.i("it's there!", url); 
     } 

在調用getURL()之前,您尚未初始化historyList

+0

對不起,是我初始化歷史列表爲: historyList = new WatchedGS();在oncreate。 – Chad

+1

事實上,你是對的比爾,一旦我將init移動到我正在調用getURL的事件中,它就能正常工作。謝謝,我現在可以睡了。 :) – Chad

+0

@Chad不客氣。我很高興能夠提供一個相對新鮮的眼睛。 :) –