2010-07-10 6 views
0

배열에서 벡터로 한 번에 하나의 값을 저장하려고하므로 벡터가 동적으로 크기를 증가시켜야합니다. 내 응용 프로그램에서 시작을 클릭하면 버튼을 클릭하면 배열의 값이 다른 페이지로 이동하여 &이 표시되지만 그 값을 벡터에 추가하려고합니다 & 검은 딸기의 영구 메모리에 저장하면 마지막으로 볼 수 있습니다. 벡터에 추가,하지만 난 하나 하나에 벡터 내가 다른 페이지로 전송되는 모든 값을 추가하려면, 여기에 코드가, 사람이 내가 오전 값이배열에서 벡터에 값을 추가하는 방법

if (quesNum != null && quesCount < quesNum.length) 
{ 
    Vector data = new Vector(); 

    data.addElement (TestScreen.quesNumber + ""); 

    synchronized (curQues) 
    { 

     curQuesnew = quesNum[quesCount]; 
     curQues.setContents (curQuesnew + ""); 
     curQues.commit(); 
    } 

    synchronized (disques) 
    { 

     System.out.println ("value is " + data); 
     disques.setContents (data); 
     disques.commit(); 
    } 
    synchronized (disques) 
    { 
     data = (Vector) disques.getContents(); 
    } 

    if (data.contains (quesNum[quesCount] + "")) 
    { 
     xyz = quesNum[quesCount++]; 
     System.out.println ("i shall overcome........."); 

    } 
    else 
    { 
     System.out.println ("hardwork conqures all........."); 
     xyz = quesNum[quesCount]; 
    } 
    return xyz; 

밖으로 나를 도울 수 매번 다른 페이지로 전송 다음 버튼을 클릭하십시오. 그래서 벡터에 값을 저장하려고합니다. 한 값이 전송 될 때마다 벡터는 가장 최근의 값만 저장합니다. //

답변

0

질문의 본문을 이해할 수 없습니다. . 그러나 여기에 Vector에 값을 추가하는 방법을 보여주는 간단한 코드가 있습니다. 당신이 Vector를 사용하는 특별한 이유가없는 한 ArrayList를 사용하는

Vector v = new Vector(); 
v.add("first string"); 
v.add("second string"); 
System.out.println(v.size()); // outputs "2" 
System.out.println(v.get(0)); // outputs "first string" 
System.out.println(v.get(1)); // outputs "second string" 

, 그것은 더 좋다.

+0

Blackberry는 ArrayList를 지원하지 않습니다. – DaveJohnston

+0

그 이유는 분명합니다. (Ugh!) –

+0

나는 거의 매일 직장에서 Blackberry API를 사용해야하고 종종 'Ugh !!!'라고 말하는 것을 발견합니다. ;) – DaveJohnston

0

나는 당신이하려는 것을 완전히 이해하지 못하지만 매번 새로운 벡터를 생성하고 있음을 알 수 있습니다.

Vector data = new Vector(); 
data.addElement (TestScreen.quesNumber + ""); 

data는 만에 하나의 요소를해야 할 것입니다 그래서 당연히. 나는 disquesPersistentObject일까요? 그래서 첫 번째로해야 할 일은 (당신이 나중에처럼) 기존의 내용을 얻을 수있을 것입니다 :

synchronized (disques) { 
    data = (Vector) disques.getContents(); 
} 

그런 data 다시 PersistentObjectcommit을에 새로운 내용을 추가 할 수 있습니다.

1

귀하의 질문에 대한 나의 마지막 시도입니다. 주의를 기울이십시오.

이렇게하면 영구 벡터를 관리해야합니다.

static Vector data; 

static PersistentObject disques = 
    PersistentStore.getPersistentObject(0x9e6d76868a999451L); 
} 

public static int test() { 
    data = (Vector) disques.getContents(); 
    if (data == null) { 
     System.out.println("Disques is empty!!"); 
     data = new Vector(); 
     disques.setContents(data); 
    } else { 
     System.out.println("Disques contains: " + data); 
    } 
    data.add("This is question " + data.size() + "\n"); 
    disques.commit(); 
} 

test가 호출 될 때마다, 그것이 초기화 된 것을 영속 객체의 가치와 수표를 가져옵니다. 초기화되어 있지 않은 경우는 하늘의 Vector에 초기화됩니다. 그런 다음 하나의 질문을 벡터에 추가하여 변경 사항을 커밋합니다.

당신이 이것을 이해하지 못하면 미안하지만 더 이상 설명하려고 애 쓰지는 않습니다. 그리고 나는 당신의 어플리케이션이 변한 임의의 혼란을 풀려고 언제든지 쓸 준비가되어 있지 않습니다.

관련 문제