Существует пользовательское listview, которое отображает изображение и текст. Я использую библиотеку изображений 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, то получать изображение после загрузки с помощью Glide, но исключение, когда я нажимаю до загрузки изображения. любое предложение?
Ответ:
Создан 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. GlideBitmapDrawable.getBitmap() 'на ссылке нулевого объекта – user2269164
, так как ошибка предполагает, что у вас есть нулевая ссылка на ваш imageView1 @ user2269164 – KDeogharkar