我有一個使用接口的自定義適配器。下面是構造函數,請讓我知道這是錯誤的:接口在適配器中的使用
public ImageAdapter(Context c, ArrayList<Bitmap> images, ArrayList folderName, ArrayList<Boolean> isFolder, FolderClickListener listener){
this.context = c;
this.images = images;
this.folderName = folderName;
this.isFolder=isFolder;
checkBoxState=new boolean[images.size()];
//imageLoader = ImageLoader.getInstance();
mListener = listener;
}
我
GetView
在適配器,我這樣調用接口
然後:
mListener.folderClicked(position); //Fails with null pointer exception
這裏是我的接口:
public interface FolderClickListener {
void folderClicked(int position);
}
然後我在我的MainActivity的方法,它實現了接口:
@Override
public void folderClicked(int position) {
//do stuff in here
}
任何想法,爲什麼我得到空指針異常? 編輯:這是我在MainActivity中的適配器,我如何將接口傳遞給此?
adapter = new ImageAdapter(TextDropboxActivity.this, pix, paths, folders);
lstView.setAdapter(adapter);
謝謝 - 這工作得很好,我不知道我必須作爲監聽器傳入TextDropboxActivity.this。謝謝你的幫助! – user3437721
雖然出於好奇。在我的適配器代碼中,我只調用了mListener.folderClicked(position);如果它是使用if ... else的文件夾。但是當我點擊圖片時,活動代碼仍然被調用(我使用Toast來測試)。所以它被稱爲如果你點擊一個文件夾圖標或圖像圖標... – user3437721
所以它現在確定,或者你還有更多的幫助? – SacreDeveloper