java - 我正在尝试在 ArrayList 中放置一个标记

标签 java android

我试图以这种方式在 ArrayList 中放置一个标记:

首先我在 MainActivity 类中声明:

public ArrayList<Marker> myList = new ArrayList<Marker>();

启动程序后标记第一个点并将其隐藏:

        if (myList.get(0)==null)
 {
     MarkerOptions options = new MarkerOptions()
             .position(latLng)
             .visible(false)
     myList.add(0, mMap.addMarker(options));
}

然后我写下一个标记按钮被按下

    myButton.setOnClickListener(new View.OnClickListener() 
    {
    public void onClick(View view) 
{
    LatLng latLng = new LatLng(currentLatitude, currentLongitude)


    if (myList.get(0) != null)
    {

                        MarkerOptions options = new MarkerOptions()
                        .position(latLng)                        
                        myList.add(1,mMap.addMarker(options));

    }
    else if (myList.get(0) != null && (myList.get(1) != null))
    {                      
                        MarkerOptions options = new MarkerOptions()
                       .position(latLng)                                        
                        myList.add(2,mMap.addMarker(options));        
    }

应用程序在开始时崩溃...... 当选项卡[]代替列表时,程序将运行

java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0

最佳答案

在获取数组的索引 0 之前,检查它是否不为空。

if (!myList.isEmpty())
{
 if (myList.get(0)==null)
  {
     //do your thing
  }
}

关于java - 我正在尝试在 ArrayList 中放置一个标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39894649/

相关文章:

android - 如何检索在 RecyclerView 适配器中单击的最后位置的 View ?

android - Retrofit 返回错误 401,Android 4.4.2 的 NullPointerException

java - ARCore – 无法创建 AR session

java - 如何将用户定义的对象添加到 LinkedList?

java - 对于由字符串和 double 组成的单个打印输出,我如何以及以什么顺序组合 printf 格式化参数?

java - Android SimpleDateFormat.format 给出错误的数字量,例如 Minute "0040"随机

android - 模拟 RxJava Observable 的正确方法是什么

java - 从 mysql 数据库列接收到某些数据后,如何更改 recyclerview 中特定卡片的颜色

Java 可能返回 Float 或 Integer?

java - Selenium 代码 (CUCUMBER) 未在 Intellij IDEA 上执行