gedrückt wird Ich werde versuchen, so klar wie möglich zu sein. Ich habe eine Gridview, die Bilder anzeigt. Der Benutzer kann mehrere Bilder in OnLongClick auswählen. Das onLongClick befindet sich in dem Adapter. Der Code verfügt außerdem über einen OnItemSelectedListener, der das ausgewählte Bild an der bestimmten Position zoomt. Das Problem ist onItemSelectedListener wird nicht ausgelöst, nach dem Tippen auf Gridview an einer beliebigen Position. Und wenn das onLongClick verwendet wird, löst es sowohl die OnItemSelectedListener- als auch die onLongClickListener-Methode aus. Ich habe versucht, die zuvor bereitgestellten Lösungen zu verwenden, die in onLongClickListener true zurückgegeben wurde, aber das hat auch nicht funktioniert. Ich stecke hier fest. Hilfe wäre willkommen. Vielen Dank im Voraus.OnItemSelectedListener wird ausgelöst, wenn onLongClick in der Gridview
gvImages.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
PhotoBeans bean = (PhotoBeans) parent.getItemAtPosition(position);
j = position;
photoUrl = bean.getThumbImageUrl();
Log.e("photoUrl", "" + photoUrl);
zoomImageFromThumb(view, photoUrl);
}
});
// Adapter
public class ImageAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private ArrayList<PhotoBeans> arrayListPhoto;
public ImageAdapter(ArrayList<PhotoBeans> arrayListPhoto) {
this.arrayListPhoto = arrayListPhoto;
mInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return arrayListPhoto.size();
}
@Override
public Object getItem(int position) {
return arrayListPhoto.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View rootView = convertView;
final ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
rootView = mInflater.inflate(R.layout.custom_gallery_item, null);
holder.imgThumb = (ImageView) rootView.findViewById(R.id.imgThumb);
holder.chkImage = (ImageView) rootView.findViewById(R.id.chkImage);
rootView.setTag(holder);
} else {
holder = (ViewHolder) rootView.getTag();
}
if (arrayListPhoto.get(position).isImageSelected()) {
holder.chkImage.setVisibility(View.VISIBLE);
holder.imgThumb.setAlpha(0.5f);
} else {
holder.chkImage.setVisibility(View.GONE);
holder.imgThumb.setAlpha(1f);
}
holder.imgThumb.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
if (arrayListPhoto.get(position).isImageSelected()) {
holder.chkImage.setVisibility(View.GONE);
holder.imgThumb.setAlpha(1f);
arrayListPhoto.get(position).setIsImageSelected(false);
} else {
holder.chkImage.setVisibility(View.VISIBLE);
holder.imgThumb.setAlpha(0.5f);
arrayListPhoto.get(position).setIsImageSelected(true);
}
notifyDataSetChanged();
return true;
}
});
Picasso.with(Photos.this)
.load(new File(arrayListPhoto.get(position).getThumbImageUrl()))
.resize(150, 150)
.centerCrop()
.into(holder.imgThumb);
return rootView;
}
}
class ViewHolder {
ImageView imgThumb;
ImageView chkImage;
int id;
}
Bitte Code setzen. –
Hat den Code veröffentlicht. – AmeyaG
warum schreibe Code von longclick in Adapter –