2012-03-30 10 views
2

Ich muss ändern, was passiert, wenn ein Benutzer auf einen Pin in einem RichMapField klickt, und diese Pins zufällig MapLocation-Objekte sind, können diese MapLocations optional auch einen anderen Datentyp namens a "Partner" -Klasse, die eine ID, Adresse, Label, Breite und Länge enthält.Blackberry OS6: Klickereignis auf erweiterte MapLocation-Klasse implementieren

Alles läuft super, und wie es in dem Moment steht, wenn man über den Stift schwebt, gibt es immer noch das Etikett und so, aber wenn man auf den Stift klickt, tut gar nichts.

Dieses Verhalten wird erwartet! Bis zu diesem Punkt lief alles super.

Was ich nicht herausfinden kann, ist, wie ein Klick- oder Touch-Listener an das neue benutzerdefinierte MapLocation-Objekt angehängt wird.

her der Code ohne viel weiter adu:

import net.rim.device.api.lbs.maps.model.MapLocation; 
import net.rim.device.api.ui.component.Dialog; 

public class CustomMapLocation extends MapLocation { 

    private Partner partner; 

    public KRMapLocation(double lat, double lon, String label, String address) { 
     setLat(lat); 
     setLon(lon); 
     setName(label); 
     setDescription(address); 
    } 

    public KRMapLocation(Partner p) { 
     this.partner = p; 
     setLat(partner.getLatitude()); 
     setLon(partner.getLongitude()); 
     setName(partner.getName()); 
     setDescription(partner.getAddress()); 
    } 

    // this does nothing... 
    protected boolean trackwheelClick(int status, int time) { 
     Dialog.alert("Trackwheel click"); 
     return true; 
    } 

} 

Das ist buchstäblich das letzte, was ich heraus bekam, ist Berührung und Trackwheel Zuhörer. Hilfe auf beide oder beide wäre erstaunlich ... Ich habe Google trocken laufen, und jetzt Google Dinge, die ich bin eine Art von Blackberry Fanboy lol

Wits Ende Jungs, ich hoffe, jemand kann mir helfen!

(Ich weiß, das möglich ist, da es ein Click-Ereignis verwendet zu haben, die eine Detailseite geöffnet, ich weiß nur nicht, was ich zu tun oder was auch bin angeblich zu suchen.)

Antwort

1

Meine Vermutung ist, dass es nicht die MapLocation ist, die Klicks verarbeitet. Es wird von dem Feld gehandhabt, das MapLocation-Daten verwendet, um nur die Koordinaten, das Label usw. zu erhalten. Ich hatte auch noch kein Glück, den richtigen Haken zu finden. Es wäre schön, zumindest den Standard-Details-Dialog erweitern zu können.

+0

Genau das habe ich versucht, leider macht BB diesen Prozess sehr schwierig. Der schlimmste Teil ist, dass BB keine Reflektionsklassen unterstützt, also können wir nicht sagen, was wir tun können oder nicht :( – RedactedProfile

+0

In BB7 können Sie das MapField setzen, so dass Sie die Klasse mit Ihren eigenen Methoden erweitern können und das RichMapField das verwenden kann Dies ist der Ort, an dem die Auswahl des Markers abgefangen werden kann.Bedürftig kann man auf BB6 das MapField nicht setzen und ein großer Teil des Marktes ist immer noch auf BB6. –

Verwandte Themen