2014-01-22 3 views
0
public class SendText extends UiAutomatorTestCase { 

    private String jsonString = "{\"A\": [[107,729],[108,728],[108,728],[108,727]," + 
     "[108,727],[108,727],[108,727],[108,727],[108,727],[108,727],[108,727],[108,727],[110,724]," + 
     "[114,717],[125,701],[134,685],[145,663],[157,636],[169,607],[179,583],[191,558],[196,547]," + 
     "[199,540],[201,534],[202,529],[203,528],[204,525],[204,524],[204,524],[204,524],[204,524]," + 
     "[204,524],[204,525],[204,530],[205,538],[207,549],[209,566],[216,602],[223,629],[229,653]," + 
     "[235,671],[238,684],[241,697],[242,703],[242,707],[243,710],[243,712],[243,713],[243,713]," + 
     "[243,713],[243,713],[244,713],[244,713],[244,713],[244,713],[242,709],[237,703],[230,695]," + 
     "[224,684],[220,679],[215,671],[212,665],[206,658],[202,655],[200,654],[196,651],[192,648]," + 
     "[189,646],[184,642],[182,641],[180,639],[179,637],[177,635],[176,634],[174,633],[173,631]," + 
     "[172,630],[171,629],[170,628],[170,628],[170,627],[169,627],[169,627],[169,627],[169,627]," + 
     "[169,629],[169,629]]}" ; 

    public void testSendText() throws UiObjectNotFoundException { 

     JSONObject jsonObj; 
     try { 
      jsonObj = new JSONObject(jsonString); 
      jsonObj.getJSONArray("A"); 
     } catch (JSONException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 

     //String line = null; 

     for(int k = 0; k < jsonString.length(); k++){ 
      Vector<Point> apoints = new Vector<Point>(); 
      apoints.add(new Point()); 
      getUiDevice().swipe((Point[])apoints.toArray(), 5); 
     } 
    } 
} 
+2

Используйте '.swipe (apoints.toArray (новая точка [apoint.size()]), 5);' –

+1

@ZouZou Спасибо .... что сработало !!! – dummy

+0

@ZouZou если вместо jsonString.length() я хочу передать фактическое содержимое A с помощью jsonObj ..., которое примет массив внутри массива ... как я могу это сделать? – dummy

ответ

1

Интерфейс коллекции имеет 2 метода toArray. Первый объект Object [] toArray() возвращает все элементы в коллекции и сохраняет их в массиве типа Object []. Второй, T [] toArray (T [] a) сохраняет элементы коллекции в параметре для метода, если он достаточно велик, в противном случае он выделяет массив соответствующего размера через отражение во время выполнения на a. Ваш код эквивалент следующее: `

Object[] x = new Object[1]; 

x[0] = "Test"; 
System.out.println(((String[]) x)[0]); //Throws a ClassCastException 

` Для того, чтобы исправить это, просто использовать ToArray (T [] а) версию ToArray как предложено ZouZou.

Смежные вопросы