有一個自定義列表視圖,它顯示圖像和文本。我正在使用Glide圖像庫來加載圖像。所以,當我搜索圖像和文字顯示在列表視圖中,但在圖像加載之前,如果我點擊它,Java空指針異常是可見的。如何避免在圖像加載之前進行點擊或需要在itemclick監聽器上完成任何更改。在圖像加載之前單擊列表視圖時的異常
項目單擊:
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
descusers du = dusers.get(position);
final String Limage = du.image;
if (!Limage.isEmpty()) {
final ImageView imageView1 = (ImageView) view.findViewById(R.id.imageList);
final GlideBitmapDrawable bitmapDrawable = (GlideBitmapDrawable) imageView1.getDrawable();
final Bitmap yourBitmap = bitmapDrawable.getBitmap();
Dialog builder = new Dialog(this);
builder.requestWindowFeature(Window.FEATURE_NO_TITLE);
builder.getWindow().setBackgroundDrawable(
new ColorDrawable(android.graphics.Color.TRANSPARENT));
builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
//nothing;
}
});
ImageView imageView = new ImageView(this);
imageView.setImageBitmap(yourBitmap);
p=new PhotoViewAttacher(imageView);
builder.addContentView(imageView, new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
builder.show();
}
}
我檢查,如果有則圖像網址提取使用滑翔裝載後的圖像,但異常,當我的圖像加載之前點擊。任何建議?
答案:
在適配器中創建Onclicklistener傳遞顯示活動。
viewholder.iview.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Dialog builder = new Dialog(listdisplay);
builder.requestWindowFeature(Window.FEATURE_NO_TITLE);
builder.getWindow().setBackgroundDrawable(
new ColorDrawable(android.graphics.Color.TRANSPARENT));
builder.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialogInterface) {
//nothing;
}
});
ImageView imageView = new ImageView(listdisplay);
final GlideBitmapDrawable bitmapDrawable = (GlideBitmapDrawable) finalViewholder.iview.getDrawable();
final Bitmap yourBitmap = bitmapDrawable.getBitmap();
imageView.setImageBitmap(yourBitmap);
p=new PhotoViewAttacher(imageView);
builder.addContentView(imageView, new RelativeLayout.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT));
builder.show();
}
});
適配器的構造:
private Activity listdisplay;
public DescAdapter(listdisplay ds, ArrayList<descusers> dusers,Activity listdisplay) {
this.ds = ds;
this.dusers = dusers;
this.listdisplay = listdisplay;
}
顯示您的logcat –
顯示java.lang.NullPointerException:試圖調用虛擬方法android.graphics.Bitmap com.bumptech.glide.load.resource.bitmap。 「空對象引用 – user2269164
上的」GlideBitmapDrawable.getBitmap()「,因爲錯誤提示你對imageView1有空引用@ user2269164 – KDeogharkar