MapMarker

  • 3 Antworten
  • Letztes Antwortdatum
T

thegrandtheft

Neues Mitglied
0
Hallo zusammen,

ich hänge gerade ein wenig und würde euch gerne um eure Hilfe bitten. Folgendes Problem:

Ich möchte einen bestimmten Marker auf meiner Map platzieren und zwar nachdem ein Item in einem Dialog gewählt wurde.

Funktioniert das mit getApplicationContext? Ich weiß leider nicht genau wie ich das in Verbindung zum Marker bringe.

Code:
 final CharSequence[] items = {"Fabrik", "Gastronomie", "Uni"};
Code:
public void onClick(View arg0) {
            //LayoutInflater li = LayoutInflater.from(context);
            //final View v =li.inflate(R.layout.userinput, null);
            AlertDialog.Builder builder = new AlertDialog.Builder(context);
            builder.setTitle("Bitte Job auswählen");
            builder.setItems(items, new DialogInterface.OnClickListener() {
                
                @Override
                public void onClick(DialogInterface dialog, int item) {
                    //getApplicationContext();
                    //Toast.makeText(context, items[item], Toast.LENGTH_SHORT).show();
                    googlemap.addMarker(new MarkerOptions()
                    .draggable(true)
                    .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_fabrik))
                    .position(new LatLng(51.9667, 7.63333))
                    );
z.b möchte ich jetzt den zweiten Eintrag aus dem Dialog wählen(Gastronomie) und der entsprechende Marker(GastronomieIcon)
soll auf der Map platziert werden.

Vielen Dank für eure Hilfe
 
So bin jetzt selber etwas weiter gekommen.

Code:
public void TestClick (View view) {
      final CharSequence[] items={"Fabrik","Uni","Umzug"};
    AlertDialog.Builder builder=new AlertDialog.Builder(this);
    builder.setCancelable(false);
    builder.setTitle("Bitte Job auswählen:");
    builder.setPositiveButton("ok", null);
    
    
    
    new DialogInterface.OnClickListener() {
            
            @Override
            public void onClick(DialogInterface dialog, int which) {}
        };
        
         
    
     builder.setSingleChoiceItems(items,-1, new DialogInterface.OnClickListener() {
            
            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                //LinearLayout ll=(LinearLayout)findViewById(R.id.linear);
                
                if("Fabrik".equals(items[which]))
                {
                googlemap.addMarker(new MarkerOptions()
                .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_fabrik))
                .draggable(true)
                .position(new LatLng(51.9667, 7.63333)));
                }
                else if("Uni".equals(items[which]))
                {
                    googlemap.addMarker(new MarkerOptions()
                    .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_uni))
                    .draggable(true)
                    .position(new LatLng(51.9687, 7.63433)));
                    }
                else if("Umzug".equals(items[which]))
                {
                    googlemap.addMarker(new MarkerOptions()
                    .icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_umzug3))
                    .draggable(true)
                    .position(new LatLng(51.9787, 7.63533)));
                    }
                
            
            }
            
        });
     
     
     
    builder.show();
            
}
Wie kann ich erreichen, dass die Marker erst erzeugt werden, wenn ich
den positive Button betätige? Im Moment passiert dies beim drücken des Radio Button.
 
Wahrscheinlich in dem du abfragst ob der button geklickt wurde oder ein Listen element.
which enthält entweder den button oder das ausgewählte list element.
 
Warum schreibst du deinen Code nicht einfach in den Listener deines positive buttons?

Code:
builder.setPositiveButton("TEXT", new DialogInterface.OnClickListener() {
			public void onClick(DialogInterface dialog, int id) {
				DEIN CODE
			}


oder überseh ich da grad total dein Problem:confused2:
 
Zurück
Oben Unten