【问题标题】:Help with array in androidandroid中的数组帮助
【发布时间】:2011-03-22 05:50:51
【问题描述】:

我在 for 开始时得到 NullPointerException 我哪里错了?

 public void checkzone(Location loc)
  {

      X = new List<float[]>() {


    }; 
     Y = new List<float[]>() {
    }; 
        X.clear();
        Y.clear();

      float x = (float) loc.getLatitude();
      float y = (float) loc.getLongitude();
     float  A1X[] = {(float) 41.992853, (float) 41.994815, (float) 41.995158, (float)  41.993065};//DOMA
     float  A3X[] = {(float) 41.994594, (float) 41.994595, (float) 41.993744, (float) 41.993747};//OVIE SE TOCNI
     float  A4X[] = {(float) 41.121212, (float) 41.121212, (float) 41.121212, (float) 41.121212};
     float  A5X[] = {(float) 41.121212, (float) 41.121212, (float) 41.121212, (float) 41.121212};
     float  A6X[] = {(float) 41.121212, (float) 41.121212, (float) 41.121212, (float) 41.121212};
     float  B2X[] = {(float) 41.121212, (float) 41.121212, (float) 41.121212, (float) 41.121212};
     float  C11X[] ={(float) 41.121212, (float) 41.121212, (float) 41.121212, (float) 41.121212};
     float  C15X[] = {(float) 41.121212, (float) 41.121212, (float) 41.121212, (float) 41.121212};
     float  C17X[] = {(float) 41.121212, (float) 41.121212, (float) 41.121212, (float) 41.121212};


     float A1Y[] = {(float) 21.411527, (float) 21.411505, (float) 21.4142847, (float) 21.415116};//Doma
     float A3Y[] = {(float) 21.427817, (float) 21.428015, (float) 21.427972, (float) 21.427763};//OVIE SE TOCNI
     float A4Y[] = {(float) 21.122112, (float) 21.122112, (float) 21.122112, (float) 21.122112};
     float A5Y[] = {(float) 21.122112, (float) 21.122112, (float) 21.122112, (float) 21.122112};
     float A6Y[] = {(float) 21.122112, (float) 21.122112, (float) 21.122112, (float) 21.122112};     
     float B2Y[] = {(float) 21.122112, (float) 21.122112, (float) 21.122112, (float) 21.122112};
     float C11Y[] = {(float) 21.122112, (float) 21.122112, (float) 21.122112, (float) 21.122112};
     float C15Y[] = {(float) 21.122112, (float) 21.122112, (float) 21.122112, (float) 21.122112};
     float C17Y[] = {(float) 21.122112, (float) 21.122112, (float) 21.122112, (float) 21.122112};


    X.add(A1X);
    X.add(A3X);
    X.add(A4X);
    X.add(A5X);
    X.add(A6X);     
    X.add(B2X);
    X.add(C11X);
    X.add(C15X);
    X.add(C17X);
    X.add(A1X);

    Y.add(A1Y);
    Y.add(A3Y);
    Y.add(A4Y);
    Y.add(A5Y);
    Y.add(A6Y);
    Y.add(B2Y);
    Y.add(C11Y);
    Y.add(C15Y);
    Y.add(C17Y);
    Y.add(A1Y);

      for(int i=0; i<=X.size();i++)
      {


          if (pointInPolygon(X.get(i).length,X.get(i),Y.get(i),x,y))
          {

                switch (i) {
                case 1:
                    zonefoundsettexts("A1");  
                case 2:
                    zonefoundsettexts("A3");    
                case 3:
                    zonefoundsettexts("A4");    
                case 4:
                    zonefoundsettexts("A5");    
                case 5:
                    zonefoundsettexts("A6");    
                case 6:
                    zonefoundsettexts("B2");
                case 7:
                    zonefoundsettexts("C11");
                case 8:
                    zonefoundsettexts("C15");
                case 9:
                    zonefoundsettexts("C17");


                          }
            }
//            else
       //                 zonefoundsettexts("nozone");

      }




  };

【问题讨论】:

    标签: android arrays list


    【解决方案1】:

    不好:

    for(int i=0; i<=X.size();i++)
    

    好:

    for(int i = 0, n = X.size(); i < n; i++)
    

    不好:

               case 1:
                    zonefoundsettexts("A1");  
               case 2:
                    zonefoundsettexts("A3");    
    

    好:

               case 1:
                    zonefoundsettexts("A1");  
                    break;
               case 2:
                    zonefoundsettexts("A3");    
                    break;
    

    您也不必在创建列表后立即clear() 列表

    【讨论】:

    • clearing 和
    【解决方案2】:

    Java 不支持既没有原始类型也没有数组的泛型。您需要使用ListLists 或Floats(不是float):List&lt;List&lt;Float&gt;&gt;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-17
      • 2010-11-17
      • 2011-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多