2017-01-09 10 views
0

Nativescriptでアプリを書く。次の設定は、エラーなしで正常に動作します。AndroidのGoogleマップユーティリティ - onClusterClickによりNullPointerExceptionエラーが発生する

// initialize cluster manager 
dis.cluster_manager = new dis.clustering.ClusterManager(app.android.context, dis.gMap); 
// Instantiate the cluster manager algorithm as is done in the ClusterManager, so we can access cluster items themselves, rather than cluster markers 
dis.cluster_manager_algorithm = new dis.clustering.algo.NonHierarchicalDistanceBasedAlgorithm(); 
dis.cluster_manager.setAlgorithm(dis.cluster_manager_algorithm); 

var CustomClusterRenderer = dis.clustering.view.DefaultClusterRenderer.extend({ 
    //constructor 
    init: function() {}, 
    onBeforeClusterItemRendered: function (item, markerOptions) { 
     console.log("onBeforeClusterItemRendered"); 
    }, 
    onBeforeClusterRendered: function (cluster, markerOptions) { 
     console.log("onBeforeClusterRendered!!!!!!!!!!"); 
    } 
}); 

dis.cluster_renderer = new CustomClusterRenderer(app.android.context, dis.gMap, dis.cluster_manager); 
dis.cluster_renderer.setMinClusterSize(1); 

dis.cluster_manager.setRenderer(dis.cluster_renderer); 

dis.gMap.setOnCameraIdleListener(dis.cluster_manager); 

// must be called after every unit add/remove 
dis.cluster_manager.cluster(); 

ここで、「クラスタのクリック」と「クラスタアイテムのクリック」を聞きたいと思います。次の追加:

dis.gMap.setOnMarkerClickListener(dis.cluster_manager); 

dis.cluster_manager.setOnClusterClickListener(new dis.clustering.ClusterManager.OnClusterClickListener({ 
    onClusterClick: function(cluster) { 
     console.log("onClusterClick"); 
    } 
})); 

dis.cluster_manager.setOnClusterItemClickListener(new dis.clustering.ClusterManager.OnClusterItemClickListener({ 
    onClusterItemClick: function(item) { 
     console.log("onClusterItemClick"); 
    } 
})); 

これは、コンパイルし、正常に動作、それは私がクラスタマーカーまたはクラスタ・アイテム・マーカーをクリックしたとき、私は適切なconsole.logを得るが、アプリがクラッシュし、私はこのエラーを取得した直後に、次のとおりです。

java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.langBoolean.booleanValue()' on a null object reference

結局のところ、それはboolean型を期待しているため、

public interface OnClusterClickListener<T extends ClusterItem> { 
    public boolean onClusterClick(Cluster<T> cluster); 
} 

:地獄は、ソース内の関数を行い、なぜ無駄

答えて

0

まあ素晴らしい、2日には、ブール値を入力していると思いまして。ブレーカーなし...

dis.cluster_manager.setOnClusterClickListener(new dis.clustering.ClusterManager.OnClusterClickListener({ 
    onClusterClick: function(cluster) { 
     console.log("onClusterClick"); 
     return true; 
    } 
})); 
関連する問題