ich möchte eine liste von nahe gelegenen cafés mit name und ihre bilder zeigen. Hier ist mein Codewie bild von in der nähe caffe mit name in einer liste anzeigen
public class ViewAdapter extends BaseAdapter{
Context context;
private List<GetterAndSetter> items;
private LayoutInflater inflater;
ViewHolder viewHolder;
private GoogleApiClient mApiClient;
public ViewAdapter(Context context, List<GetterAndSetter> listItem){
this.context = context;
this.items = listItem;
}
public class ViewHolder {
TextView txtPlaceId;
TextView txtAddress;
ImageView img;
}
@Override
public int getCount() {
return items.size();
}
@Override
public Object getItem(int position) {
return items.get(position);
}
@Override
public long getItemId(int position) {
return items.indexOf(getItem(position));
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if (inflater == null){
inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
final GetterAndSetter item =items.get(position);
if (convertView == null){
convertView= inflater.inflate(R.layout.list_layout,null);
viewHolder = new ViewAdapter.ViewHolder();
viewHolder.txtPlaceId = (TextView) convertView.findViewById(R.id.txtPlaceId);
viewHolder.txtAddress = (TextView) convertView.findViewById(R.id.txtAddress);
viewHolder.img = (ImageView) convertView.findViewById(R.id.img);
convertView.setTag(viewHolder);
convertView.setTag(R.id.txtPlaceId, viewHolder.txtPlaceId);
convertView.setTag(R.id.txtAddress, viewHolder.txtAddress);
convertView.setTag(R.id.img, viewHolder.img);
}else {
viewHolder = (ViewAdapter.ViewHolder) convertView.getTag();
}
String PlaceName = items.get(position).getPlaceName();
viewHolder.txtPlaceId.setText(items.get(position).getPlace_Id()+"\n"+PlaceName);
viewHolder.txtAddress.setText(items.get(position).getAddress());
// String PlaceId ="ChIJF1un_5LBwjsR0AdAQM5TGAE";
// String PlaceId ="ChIJhXQqHPfBwjsR4BzVyYVZ31c";
// String PlaceId ="ChIJhXQqHPfBwjsR4BzVyYVZ31c";
Log.d("placeID",items.get(position).getPlace_Id());
final Task<PlacePhotoMetadataResponse> photoMetadataResponse = mGeoDataClient.getPlacePhotos(items.get(position).getPlace_Id());
photoMetadataResponse.addOnCompleteListener(new OnCompleteListener<PlacePhotoMetadataResponse>() {
@Override
public void onComplete(@NonNull Task<PlacePhotoMetadataResponse> task) {
// Get the list of photos.
PlacePhotoMetadataResponse photos = task.getResult();
// Get the PlacePhotoMetadataBuffer (metadata for all of the photos).
PlacePhotoMetadataBuffer photoMetadataBuffer = photos.getPhotoMetadata();
// Get the first photo in the list.
PlacePhotoMetadata photoMetadata = photoMetadataBuffer.get(0);
Log.d("photos", String.valueOf(photoMetadata));
// Get the attribution text.
CharSequence attribution = photoMetadata.getAttributions();
// Get a full-size bitmap for the photo.
Task<PlacePhotoResponse> photoResponse = mGeoDataClient.getPhoto(photoMetadata);
photoResponse.addOnCompleteListener(new OnCompleteListener<PlacePhotoResponse>() {
@Override
public void onComplete(@NonNull Task<PlacePhotoResponse> task) {
PlacePhotoResponse photo = task.getResult();
Bitmap bitmap = photo.getBitmap();
viewHolder.img.setImageBitmap(bitmap);
}
});
}
});
return convertView;
}
}
aber Fehler bekommen.
E/Android Runtime: fatal EXCEPTION: main Prozess: com.example.rohit.gayatri, PID: 18853 java.lang.IllegalStateException bei com.google.android.gms.common.internal.zzbp. zzbg (Unbekannte Quelle) bei com.google.android.gms.common.data.zzc.zzbu (Unbekannte Quelle) bei com.google.android.gms.common.data.zzc. (Unbekannte Quelle) at com. google.android.gms.location.places.internal.zzav. (Unbekannt Quelle) unter com.google.android.gms.location.places.internal.zzar. (Unbekannt Quelle) bei com.google.android.gms.location.places.PlacePhotoMetadataBuffer.get (Unbekannt Source) bei com.example.rohit.gayatri.PlacePhoto $ ViewAdapter $ 1.onComplete (PlacePhoto.java:313) bei com.google. android.gms.tasks.zzf.run (Unbekannte Quelle) bei android.os.Handler.handleCallback (Handler.java:739) bei android.os.Handler.dispatchMessage (Handler.java:95) bei android.os .Looper.loop (Looper.java:135) bei android.app.ActivityThread.main (ActivityThread.java:5343) bei java.lang.reflect.Method.invoke (native Methode) bei java.lang.reflect. Method.invoke (Methode.java:372) bei com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:905) bei com.android.internal.os.ZygoteInit.main (ZygoteInit.java:700)
jede Art von Hilfe ist willkommen.
fügen Sie bitte Ihre AndroidManifest.xml hinzu –
Ihre GoogleApiClient Variable sollte definiert werden. –
Die Ausnahme scheint von diesem Aufruf verursacht zu sein: 'photoMetadataBuffer.get (0)' aber ich bin nicht sicher warum, weil die Dokumentation nicht erwähnt, dass die 'get' Methode diese Art von Ausnahme auslösen kann. – Titus