2

ユーザーがRichMapFieldのピンをクリックしたときに何が起こるかを変更する必要があります。これらのピンは、たまたまMapLocationオブジェクトです。これらのMapLocationは、ID、Address、Label、を含む「Partner」クラスと呼ばれる別のデータ型もオプションで処理します。緯度と経度。

すべてがうまく機能し、ピンにカーソルを合わせた瞬間にラベルなどが表示されますが、ピンをクリックしても何も起こりません。

この動作は予想されます!したがって、この時点まで、すべてがうまくいきました。

私が理解できないように見えるのは、クリックリスナーまたはタッチリスナーを新しいカスタムMapLocationオブジェクトにアタッチする方法です。

これ以上の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;
    }

}

これは文字通り私が理解しなければならない最後のことです、タッチとトラックホイールのリスナーです。どちらかまたは両方のヘルプは素晴らしいでしょう...私はグーグルドライを実行しました、そして今までにグーグルのもの私はある種のブラックベリーファンボーイです笑

ウィットエンドの人たち、誰かが私を助けてくれることを願っています!

(これが可能であることはわかっています。以前は詳細ページを開くクリックイベントがあったため、何をすべきか、何を探しているのかさえわかりません。)

4

1 に答える 1

1

私の推測では、クリックを処理するのは MapLocation ではありません。これは、座標やラベルなどを取得するためだけに MapLocation データを使用するフィールドによって処理されます。また、適切なフックを見つけることができませんでした。少なくとも、表示されるデフォルトの詳細ダイアログを拡張できるとよいでしょう。

于 2012-05-23T02:07:29.507 に答える