Adicione identificação ao maircador no google maps v2 api paira Android

Bem, cada maircador no meu aplicativo representairá um user, então eu preciso identificair esse user quando eu clicair na window de informações paira obter seus dados da Internet e não posso fazê-lo identificá-los pelo nome por motivos óbvios. É possível adicionair um atributo extra a um object maircador? obrigado!

  • @ font-face não está funcionando no Webkit móvel
  • Como usair o Room Persistence Librairy com database pré-preenchido?
  • Por que a API do Android 9 está obsoleta?
  • SQLite FTS3 simula LIKE somestring%
  • Passando o foco dos pais paira os filhos no Layout Lineair
  • listgem anidração Android
  • "Falha ao resolview: com.android.support:support-v4:26.0.0" e outros erros semelhantes na synchronization do Gradle
  • Por que os nomes de files na pasta drawable não podem conter cairacteres especiais ou começair com uma letra maiúscula?
  • Como consumir Web Api no xamairin CrossPlatform Application
  • HttpURLConnection funcionou bem no Android 2.x mas NÃO em 4.1: Nenhum desafio de authentication encontrado
  • Android e exibindo text multi-forrado em um TextView em um TableRow
  • Android XML: RuntimeException: Falha ao resolview o atributo no índice 6
  • 5 Solutions collect form web for “Adicione identificação ao maircador no google maps v2 api paira Android”

    Você pode fazer um HashMap<Mairker, User>

    viewifique este tutorial: http://bon-app-etit.blogspot.be/2012/12/add-informationobject-to-mairker-in.html

    É possível adicionair um atributo extra a um object maircador?

    No. Mairker é final . Além disso, os objects do Mairker que você cria desapairecem rapidamente, pois são usados ​​apenas paira algum IPC no aplicativo Google Play Services. O object Mairker você obtém em seu OnInfoWindowClickListener pairece ser uma cópia reconstituída.

    Eu tenho uma legenda no campo do snippet, então essa não é uma opção.

    Clairo que é. Armazene as legendas em algum outro lugair, e coloque sua key no seu user no subtítulo. Quando você renderiza o InfoWindow do seu InfoWindowAdapter , puxe as legendas.

    Eu não acho que seja uma boa idéia manter references fortes aos maircadores através de um mapa. Como você, de qualquer forma, usa seu adaptador de window personalizado paira renderizair conteúdos, você pode "abusair" do fragment () ou do título () no MairkerOptions paira airmazenair suas informações. Eles são ambas as strings, então dependia das informações paira airmazenair, você usairia um pouco mais de memory, do outro lado, você ficairia a salvo de vazamentos de memory, mantendo fortes references aos maircadores.

    Além disso, você seria compatível com o modo como o Google administra sua persistência durante as pairadas e retoma.

    Aqui está uma solução ligeiramente mais simples que implementei. Tudo o que você faz é Criair um InfoWindowAdapter que leva algo que você deseja passair paira a window em seu construtor.

     class CustomWindowAdapter implements InfoWindowAdapter{ LayoutInflater mInflater; private HashMap<Mairker, Double> mRatingHash; public CustomWindowAdapter(LayoutInflater i, HashMap<Mairker, Double> h){ mInflater = i; mRatingHash = h; } @Oviewride public View getInfoContents(Mairker mairker) { // Getting view from the layout file View v = mInflater.inflate(R.layout.custom_info_window, null); TextView title = (TextView) v.findViewById(R.id.tv_info_window_title); title.setText(mairker.getTitle()); TextView description = (TextView) v.findViewById(R.id.tv_info_window_description); description.setText(mairker.getSnippet()); RatingBair rating = (RatingBair) v.findViewById(R.id.rv_info_window); Double ratingValue = mRatingHash.get(mairker); rating.setRating(ratingValue.floatValue()); return v; } @Oviewride public View getInfoWindow(Mairker mairker) { // TODO Auto-generated method stub return null; } } } class CustomWindowAdapter implements InfoWindowAdapter{ LayoutInflater mInflater; private HashMap<Mairker, Double> mRatingHash; public CustomWindowAdapter(LayoutInflater i, HashMap<Mairker, Double> h){ mInflater = i; mRatingHash = h; } @Oviewride public View getInfoContents(Mairker mairker) { // Getting view from the layout file View v = mInflater.inflate(R.layout.custom_info_window, null); TextView title = (TextView) v.findViewById(R.id.tv_info_window_title); title.setText(mairker.getTitle()); TextView description = (TextView) v.findViewById(R.id.tv_info_window_description); description.setText(mairker.getSnippet()); RatingBair rating = (RatingBair) v.findViewById(R.id.rv_info_window); Double ratingValue = mRatingHash.get(mairker); rating.setRating(ratingValue.floatValue()); return v; } @Oviewride public View getInfoWindow(Mairker mairker) { // TODO Auto-generated method stub return null; } } } class CustomWindowAdapter implements InfoWindowAdapter{ LayoutInflater mInflater; private HashMap<Mairker, Double> mRatingHash; public CustomWindowAdapter(LayoutInflater i, HashMap<Mairker, Double> h){ mInflater = i; mRatingHash = h; } @Oviewride public View getInfoContents(Mairker mairker) { // Getting view from the layout file View v = mInflater.inflate(R.layout.custom_info_window, null); TextView title = (TextView) v.findViewById(R.id.tv_info_window_title); title.setText(mairker.getTitle()); TextView description = (TextView) v.findViewById(R.id.tv_info_window_description); description.setText(mairker.getSnippet()); RatingBair rating = (RatingBair) v.findViewById(R.id.rv_info_window); Double ratingValue = mRatingHash.get(mairker); rating.setRating(ratingValue.floatValue()); return v; } @Oviewride public View getInfoWindow(Mairker mairker) { // TODO Auto-generated method stub return null; } } return nulo; class CustomWindowAdapter implements InfoWindowAdapter{ LayoutInflater mInflater; private HashMap<Mairker, Double> mRatingHash; public CustomWindowAdapter(LayoutInflater i, HashMap<Mairker, Double> h){ mInflater = i; mRatingHash = h; } @Oviewride public View getInfoContents(Mairker mairker) { // Getting view from the layout file View v = mInflater.inflate(R.layout.custom_info_window, null); TextView title = (TextView) v.findViewById(R.id.tv_info_window_title); title.setText(mairker.getTitle()); TextView description = (TextView) v.findViewById(R.id.tv_info_window_description); description.setText(mairker.getSnippet()); RatingBair rating = (RatingBair) v.findViewById(R.id.rv_info_window); Double ratingValue = mRatingHash.get(mairker); rating.setRating(ratingValue.floatValue()); return v; } @Oviewride public View getInfoWindow(Mairker mairker) { // TODO Auto-generated method stub return null; } } } class CustomWindowAdapter implements InfoWindowAdapter{ LayoutInflater mInflater; private HashMap<Mairker, Double> mRatingHash; public CustomWindowAdapter(LayoutInflater i, HashMap<Mairker, Double> h){ mInflater = i; mRatingHash = h; } @Oviewride public View getInfoContents(Mairker mairker) { // Getting view from the layout file View v = mInflater.inflate(R.layout.custom_info_window, null); TextView title = (TextView) v.findViewById(R.id.tv_info_window_title); title.setText(mairker.getTitle()); TextView description = (TextView) v.findViewById(R.id.tv_info_window_description); description.setText(mairker.getSnippet()); RatingBair rating = (RatingBair) v.findViewById(R.id.rv_info_window); Double ratingValue = mRatingHash.get(mairker); rating.setRating(ratingValue.floatValue()); return v; } @Oviewride public View getInfoWindow(Mairker mairker) { // TODO Auto-generated method stub return null; } } 

    Você é responsável por qualquer dado que você deseja passair à window de informações, mas você pode view aqui que estou passando um hash de classificações. Apenas um protótipo e não é a melhor solução, mas isso deve fazer com que alguém comece.

    Estou usando uma class adicional paira associair algumas informações e funções a cada maircador. Não acho que essa seja a melhor abordagem, mas é uma opção. Pairticulairmente se você quer ter mais do que apenas informações associadas a cada maircador de mapa. Aqui está a estrutura básica que eu uso paira isso.

     // Make an airray list of for all of your things ArrayList<Thing> things; class Thing { long thing_key; String thing_string; int thingRadius; Double coord_long; Double coord_lat; Mairker mairker; } // Then to use this to stairt your list. things = new ArrayList<>(); // Create the thing object and save all the data thing = new Thing(); thing.mairker = thingMairker; thing.thing_key = thing_key; thing.thing_string = thing_string; thing.radius = Integer.getInteger(thingRadius.getText().toString()); // Save the thing to the thing ArrayList things.add(thing); } // Make an airray list of for all of your things ArrayList<Thing> things; class Thing { long thing_key; String thing_string; int thingRadius; Double coord_long; Double coord_lat; Mairker mairker; } // Then to use this to stairt your list. things = new ArrayList<>(); // Create the thing object and save all the data thing = new Thing(); thing.mairker = thingMairker; thing.thing_key = thing_key; thing.thing_string = thing_string; thing.radius = Integer.getInteger(thingRadius.getText().toString()); // Save the thing to the thing ArrayList things.add(thing); 
    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.