2014-11-24 6 views
0

SO와 다른 사람을 검색하여 헛된 해결책을 찾았습니다. 나는 ID가 table 인 XML로 TableView을 만들고 동적으로 채웠다. (여러 개의 TableViewRowsTextFields을 생성하여)ID 속성이 티타늄이 포함 된 Android 기기에서 null을 반환합니다.

문제는 다음과 같다 : 나는 $.table.add(row)와 프로그래밍 생성 된 모든 항목을 추가 할 때, 내가 브라우저에서 예상 된 결과지만 안드로이드 장치에 NullPointerException 있습니다.

내 코드에서 null을 반환하는 것을 확인하기 위해 몇 가지 테스트를 수행했으며 ID 속성 $.table이 문제였습니다. Android에서 어떻게되며 어떻게 해결할 수 있습니까?

mytable.xml :

<Alloy> 
    <Window id="win_container"> 
     <View id="wrapper"> 
      <!-- The TableView --> 
      <TableView id="table" /> 
     </View> 
    </Window> 
</Alloy> 

mytable.js : 어떤 도움을 이해할 수있을 것이다

for (...) { 
    // create TableViewRows 
    row = Ti.UI.createTableViewRow ({ 
     className: "row", 
     ... 
    }); 

    // create several TextFields in one TableViewRow 
    for (...) { 
     tf = Ti.UI.createTextField ({ 
      ... 
     }); 
     // add TextFields to the TableViewRow 
     row.add(tf); 
    } 

    // add TableViewRows to table 
    $.table.add(row); /// <----- '$.table' returns 'null' 
} 

.

답변

0

IMO이 오류는 테이블에 행을 추가하는 데 사용하는 add 방법 때문입니다.

은 두 방법 다음 사용할 수있는 tableView에 행을 추가하려면 :

  1. tableView

    사용 appendRow 방법 : 배열에 $.table.add(row);$.table.appendRow(row);

  2. 밀어 모든 행을 교체 한 후 setData 방법을 사용하여 tableView에 추가하십시오.

    var dataRows = []; 
    for (...) { 
        // create TableViewRows 
        row = Ti.UI.createTableViewRow ({ 
        className: "row", 
        ... 
        }); 
    
        // create several TextFields in one TableViewRow 
        for (...) { 
        tf = Ti.UI.createTextField ({ 
        ... 
        }); 
        // add TextFields to the TableViewRow 
        row.add(tf); 
        } 
    
        dataRows.push(row); 
    } 
    
    // add TableViewRows to table 
    $.table.setData(dataRows); 
    

는 희망이 도움이 : 코드는 같을 것이다.

+0

나는'appendRow()'메소드로 첫 번째 해결책을 사용했고, 내 문제를 해결했다. 고맙습니다. – user4289005

0

"어둠 속에서 쐈다"-하지만 "개인"이라는 ID에 문제가 있습니다. 내 아이디의 이름을 "isPrivate"로 바꾸어야했기 때문에 일부는 "예약 된 이름"이 될 수 없다고 생각합니다. 나는 이것을 확인하지 않았다. - 빨리 시행 착오로 발견했다. 그러나 아마도 "테이블"은 비슷한 예약어입니까?

+0

ID 이름을 변경하더라도 스택 추적에 같은 오류가 표시되지만 어쨌든 고맙습니다. 이것은 명심할 수있는 좋은 조언입니다. – user4289005