在android中帮助数组

时间:2010-07-28 15:42:18

标签: android arrays list

我在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");

      }




  };

2 个答案:

答案 0 :(得分:2)

BAD:

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

GOOD:

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

BAD:

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

GOOD:

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

您创建它们之后也不必拥有clear()个列表

答案 1 :(得分:0)

Java不支持既没有基本类型也没有数组的泛型。您需要使用List ListFloat s floatList<List<Float>>} {{1}}