как добавить значение из массива в вектор - PullRequest
0 голосов
/ 10 июля 2010

Я пытаюсь сохранить одно значение за раз из массива в вектор, поэтому вектор должен динамически увеличивать свой размер. В моем приложении, когда мы нажимаем кнопку запуска, значение из массива переходит к другомустраница, на которую оно извлекается, а затем отображается, но когда я пытаюсь добавить это значение в вектор и сохранить его в постоянной памяти ежевики, я вижу, что в вектор добавлено только последнее, но я хочу вектородин за другим добавьте все значения, которые я отправил на другую страницу, вот код, может ли кто-нибудь мне помочь

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;

это значение, которое я отправляю на другую страницу каждый раз, когда мы нажимаемСледующая кнопка, поэтому я пытаюсь сохранить значения в векторе, каждый раз, когда отправляется одно значение, но вектор хранит только последнее значение, не все значения //

Ответы [ 3 ]

1 голос
/ 12 июля 2010

Это будет моя последняя попытка ответить на ваш вопрос.Обратите внимание.

Вот как вы должны управлять своим постоянным вектором.

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, он выбирает значение постоянного объекта и проверяет, что он был инициализирован.Если он не был инициализирован, он инициализируется пустым вектором.Затем он добавляет один вопрос к вектору и фиксирует изменения.

Если вы этого не понимаете, извините, но я не готов тратить больше времени на попытки объяснить.И я ОПРЕДЕЛЕННО не готов тратить какое-либо время, пытаясь разобрать случайный беспорядок, в который превратилось ваше приложение.

0 голосов
/ 10 июля 2010

Я не совсем понимаю, что вы пытаетесь сделать, но я вижу, что вы каждый раз создаете новый Вектор.

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

Так что, конечно, data будет содержать только один элемент. Я предполагаю, disques это PersistentObject? Поэтому первое, что нужно сделать, это получить существующее содержимое (как вы это сделаете позже):

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

Затем добавьте новый контент в data и commit верните его в PersistentObject.

0 голосов
/ 10 июля 2010

Я не могу понять суть вашего вопроса. Но вот простой код, иллюстрирующий, как добавить значения в Vector.

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"

Если у вас нет особых причин для использования Vector, лучше использовать ArrayList.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...