イメージとテキストを表示するカスタムリストビューがあります。私はイメージを読み込むためにGlideイメージライブラリを使用しています。だから私は画像を検索すると、リストビューのテキストが表示されますが、それをクリックすると画像がロードされる前に、Java Null Pointerの例外が表示されます。 itemclickリスナで画像を読み込む前にクリックをしたり、変更を加える必要はありません。画像がロードされる前にリストビューをクリックすると例外が発生する
によって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();
}
}
私はイメージがロードされる前にクリックしたときに、私は、画像のURLがある場合は、その後グライドを使用してロードした後に画像を取り込むチェックするが、例外います。なにか提案を?
回答:表示アクティビティを渡すアダプタで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;
}
をロードすることにより たりすることができます
setEnabled(false)
はあなたのlogcat –のjava.lang.NullPointerExceptionを表示:「android.graphics.Bitmap com.bumptech.glide.load.resource.bitmap仮想メソッドを呼び出すようにしようとします。 GlideBitmapDrawable.getBitmap() 'をヌルオブジェクトリファレンスでエラー – user2269164
と入力するとエラーが発生しました。imageView1 @ user2269164 – KDeogharkar