小编gar*_*r_r的帖子

Android立即创建的Pair元素为null

作为显示在图像中,我创建PairString,但它们是null(如图中调试器)

在此输入图像描述

怎么了?我真的很想通过重新实现来避免乱丢我的项目Pair<A, B>

java android unit-testing android-studio

17
推荐指数
2
解决办法
2104
查看次数

更改 Android 谷歌地图中的 clustermanager 项目图标

我的 Android 应用程序中有一个谷歌地图。它充满了标记,它聚集了标记......简而言之,这是一张完全可用的地图。

我想做的事情很简单。当用户点击 clusterItem 时,我想将图标更改为选定的图标。(简单地说,相同的标记但颜色不同)。

我如何在屏幕上使用大量标记,每次单击标记时都不可能清理地图并添加标记。

所以:

mClusterManager.setOnClusterItemClickListener(new ClusterManager.OnClusterItemClickListener<MyItem>() {
    @Override
    public boolean onClusterItemClick(MyItem myItem) {
        if (oldItemSelected != null) {
            mClusterManager.removeItem(oldItemSelected);
            oldItemSelected.setItemAsNotSelected();
            mClusterManager.addItem(oldItemSelected);
        }

        mClusterManager.removeItem(myItem);
        myItem.setItemAsSelected();
        mClusterManager.addItem(myItem);
        mClusterManager.cluster();

        oldItemSelected = myItem;
        return true;
    }
});
Run Code Online (Sandbox Code Playgroud)

这个想法是从地图中删除单击的项目,将其设置为“选定”,添加新项目并使用 .cluster 方法刷新地图。

会发生什么:该项目没有改变,有时该项目是“重复的”并且所选项目位于“正常”项目的后面。

这就是我设置集群管理器的方式:

mClusterManager = new ClusterManager<MyItem>(this, map);
mClusterManager.setRenderer(new MyItemRenderer());
mClusterManager.setAlgorithm(new GridBasedAlgorithm<MyItem>());
map.setOnMarkerClickListener(mClusterManager);
Run Code Online (Sandbox Code Playgroud)

这是项目渲染器:

private class MyItemRenderer extends DefaultClusterRenderer<MyItem> {
    public MyItemRenderer() {
        super(getApplicationContext(), map, mClusterManager);
    }

    @Override
    protected void onBeforeClusterItemRendered(MyItem myItem, MarkerOptions markerOptions) {
        markerOptions.title(myItem.getName());
        markerOptions.snippet(myItem.getAddress());
        markerOptions.icon(BitmapDescriptorFactory.fromResource(myItem.getIcon()));
    }

    @Override
    protected …
Run Code Online (Sandbox Code Playgroud)

android google-maps android-maps-utils

6
推荐指数
1
解决办法
3654
查看次数

多个包与 Android build-tools 包一起安装

我注意到使用sdkmanager(版本 3.0)的构建工具包的 CMDL 安装会安装模拟器平台工具包。

sdkmanager --verbose "build-tools;30.0.3"

Info: Preparing "Install SDK Patch Applier v4 (revision: 1)".
Info: "Install SDK Patch Applier v4 (revision: 1)" ready.                       
Info: Installing SDK Patch Applier v4 in /opt/android/patcher/v4                
Info: "Install SDK Patch Applier v4 (revision: 1)" complete.                    
Info: "Install SDK Patch Applier v4 (revision: 1)" finished.                    
Info: Preparing "Install Android Emulator (revision: 30.4.5)".                  
Info: "Install Android Emulator (revision: 30.4.5)" ready.                      
Info: Installing Android Emulator in /opt/android/emulator                      
Info: …
Run Code Online (Sandbox Code Playgroud)

android-sdk-manager

6
推荐指数
1
解决办法
1350
查看次数