我試圖追蹤播放的URL的歷史記錄,以及getCurrentPosition的值,以提供用戶恢復他們在該會話期間離開的視頻的能力。我的策略是使用兩個Arraylist來存儲數據,比較URL和通過意向附加組件填充以前的位置。Android - 用getter/setter調用Arraylist的空指針。
我收到了一個NPE的電話給我的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提出了一些愚蠢的事情,並希望我所錯過的任何指針。先謝謝你。
你初始化了'historyList'嗎? – Raghunandan