J'ai un appelé quand je clique sur un naviguer code> méthode:
textview code>: p>
public class AttractionAdapter extends ArrayAdapter<Attraction> {
public AttractionAdapter(Context context, ArrayList<Attraction> attractions) {
super(context, 0, attractions);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View listItemView = convertView;
if (listItemView == null) {
listItemView = LayoutInflater.from(getContext()).inflate(
R.layout.list_item, parent, false);
}
final Attraction currentAttraction = getItem(position);
ImageView imageView = (ImageView) listItemView.findViewById(R.id.attraction_image);
imageView.setImageResource(currentAttraction.getImageResourceId());
TextView attractionName = (TextView) listItemView.findViewById(R.id.attraction_name);
attractionName.setText(currentAttraction.getName());
TextView location = (TextView) listItemView.findViewById(R.id.location);
location.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
navigate(currentAttraction.getLocation());
}
});
// Find the ImageView in the list_item.xml layout with the ID image.
TextView contact = (TextView) listItemView.findViewById(R.id.contact);
// Check if an image is provided for this word or not
if (currentAttraction.hasContact()) {
// If an image is available, display the provided image based on the resource ID
contact.setText(currentAttraction.getContact());
// Make sure the view is visible
contact.setVisibility(View.VISIBLE);
} else {
// Otherwise hide the ImageView (set visibility to GONE)
contact.setVisibility(View.GONE);
}
return listItemView;
}
public void navigate(String coordinates){
Uri intentUri = Uri.parse("geo"+coordinates);
Intent mapIntent = new Intent(Intent.ACTION_VIEW);
mapIntent.setData(intentUri);
mapIntent.setPackage("com.google.android.apps.maps");
getContext().startActivity(mapIntent);
}
}
3 Réponses :
Vous avez oublié le côlon après Geo:
Uri intentUri = Uri.parse("geo:"+coordinates);
Nourdi publique Navigate (contexte context, coordonnées de chaîne) { naviguer (getcontext, courantattraction.getlocation ()); P> P>
Il est toujours sûr de vérifier s'il existe une activité pour gérer l'intention ou non avant de tirer une intention implicite.
ATTENTION STROND>: Il est possible qu'un utilisateur n'ait pas d'applications qui gèrent l'intention implicite que vous envoyez au démarrage (). Ou une application peut être inaccessible en raison des restrictions de profil ou des paramètres mis dans place par un administrateur. Si cela se produit, l'appel échoue et votre App se bloque. Pour vérifier qu'une activité recevra l'intention, appelez résolvement () sur votre objectif d'intention. Si le résultat est non nul, Il y a au moins une application qui peut gérer l'intention et sa sécurité appeler startactivité (). Si le résultat est nul, n'utilisez pas l'intention p> blockQuote> xxx pré> vérifier la documentation officielle ici p> p>
Merci. L'intention ouvre désormais Google Maps, mais au lieu d'afficher l'emplacement, il s'agit simplement d'un écran vide avec la barre de recherche sur le dessus et de pas de carte.
Pouvez-vous ajouter ici ce que vos coordonnées B> ressemblent? Vous pouvez également essayer avec des données d'exemple comme Geo: 37.7749, -122.4194 B>?
Cela semble travailler maintenant, je ne suis vraiment pas sûr de ce qui a changé. Cela aurait pu être l'appareil jouant. Merci de votre aide.