2012-07-12 6 views
0

나는 이것을 사용하여 ->http://www.ezzylearning.com/tutorial.aspx?tid=1763429 내 사용자 정의 listview를 만듭니다.루프 동안 SQLite에 배열 추가

내 프로젝트의 경우 while 루프를 사용하여 데이터를 가져오고 데이터를 다시 가져옵니다.

원래의 코드는 다음과 같습니다

내 사건에 대한 그러나
DownloadClass data[] = new DownloadClass[] { 
    new DownloadClass("test", "test"), 
    new DownloadClass("test", "Sunny") 
}; 

.. 목록보기 내가 데이터를 삽입하지 알고 있기 때문에 비어있는 것으로 나타납니다

DownloadClass data[] = new DownloadClass[] {}; 
SQLFunctions entry = new SQLFunctions(this); 
entry.open(); 
highestID = entry.getHighestId(); 
for (int l = 1; l < highestID; l++) { 
    Long longVal = Long.valueOf(l); 
    new DownloadClass(entry.getName(longVal).toString(), entry.getURL(longVal).toString()); 
} 

. 어떤 도움을 주셔서 감사합니다. 감사.

편집 : 내 DownloadClass : 당신은 이제까지 당신의 배열에 새 DownloadClass 객체를 추가하지 않을

DownloadClass data[] = new DownloadClass[]; // need to work on this 
    SQLFunctions entry = new SQLFunctions(this); 
    entry.open(); 
    highestID = entry.getHighestId(); 
    Log.e("HIGHEST ID", highestID.toString()); 
    if (highestID > 1) { 
    for (int l = 0; l < highestID; l++) { 
     Long longVal = Long.valueOf(l); 
     //String name = entry.getName(longVal); 
     //String id = entry.getURL(longVal); 
     //Log.e("NAME", name + " - " + id); 
data[l] = new DownloadClass(entry.getName(longVal).toString(),entry.getURL(longVal).toString()); 
     } 
    } 
entry.close(); 
+0

해야 인덱스 1부터 시작이다 DownloadClass 데이터 [] = 새로운 DownloadClass [highestID] 가장 높은 ID를 얻은 후에 작동합니다 .. – user370305

답변

0

.. .. 대신 1

DownloadClass data[]; 
SQLFunctions entry = new SQLFunctions(this); 
entry.open(); 
highestID = entry.getHighestId(); 
data[] = new DownloadClass[highestID]; 
for (int l = 0; l < highestID; l++) { 
Long longVal = Long.valueOf(l); 
data[i] = new DownloadClass(entry.getName(longVal).toString(), entry.getURL(longVal).toString()); 
} 

또한 0 인덱스 루프를 시작합니다 ..이 시도하고 나를 어떻게 알려

업데이트 :

우선, 당신은 객체의 배열을 동적으로 생성합니다. 그래서 배열의 크기를 알아야합니다.

두 번째 루프, 그것은 당신은 그냥이 줄을 추가 할 필요가 0

+0

그에게 해결책을 알려주고, 잘못된 점과 개선 방법을 알려주지 마십시오. –

+0

@Recursed - 그가 알고 싶어하는 것처럼, 객체의 배열을 채우는 방법과 그가 그것을 고수했다. 그리고 나는이 두 라인이 그를 매치하게 생각하지 않는다. 그것은 시작 단계에서 발생합니다. – user370305

+0

예,하지만 그는 ** 배울 필요가 있습니다 ** 그래서 ** 그가 ** 알고있는 이유는 ** 문제가 있으며 미래에 그것을 고치는 방법입니다. 우리가 사람들에게 모든 대답을 스푼 푸닝하면, 특히 이런 간단한 문제에 대해, 우리는 나쁜 프로그래밍을 영속시킵니다. 사람들은 잡을 수있는 모든 코드 묶음을 복사하여 붙여 넣지 말고 ** 경험 많은 프로그래머로부터 ** 배울 수 있고 자신의 코드를 개발할 수 있어야합니다. –

1

public class DownloadClass { 
     public String name; 
     public String url; 
     public DownloadClass(){ 
      super(); 
     } 

     public DownloadClass(String name, String url) { 
      super(); 
      this.name = name; 
      this.url = url; 
     } 
    } 

나의 새로운 활동. ArrayList 대신 배열을 사용하려는 경우에도 크기를 할당해야합니다 (솔직히 원하는 것일 수 있습니다).

루프를 반복하면서 배열의 한 위치에 새 객체를 지정해야합니다.

data[i] = new DownloadClass(...);

+0

알아요. 이것이 제가 묻는 이유입니다. 배열에 어떻게 추가해야합니까? – MrYanDao

+1

루프가 1에서 시작합니다. 이해가 잘 안되지만 위에 표시된 것은 배열에 추가하는 방법입니다. 이것은 매우 간단한 프로그래밍 개념이며, 이것을 너무 많이 사용하기 전에 배열을 읽는 것이 좋습니다. –