2010-07-10 37 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; 

这就是我很值每次我们发送到其他页面点击下一步按钮,所以我试图将值存储到一个向量中,每次发送一个值时,向量仅存储最新值,nt整个值//

回答

0

我无法理解您的问题的正文。但是这里有一些简单的代码来说明如何将值添加到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

+0

黑莓不支持ArrayList。 – DaveJohnston 2010-07-10 10:24:25

+0

这听起来像一个特定的原因。 (Ugh !!) – 2010-07-10 12:22:59

+0

我几乎每天都要在Blackberry API上工作,而且经常发现自己在说'呃!!!' ;) – DaveJohnston 2010-07-10 14:13:23

0

我不完全明白你想要做什么,但我可以看到你每次都创建一个新的Vector。

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

所以当然data只会有一个单一的元素在里面。我在猜测disquesPersistentObject?所以,要做的第一件事是让现有内容(像你这样以后):

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

新的内容,那么添加到datacommit它回到PersistentObject

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。然后它向向量提交一个提交更改的问题。

如果你不明白这一点,我很抱歉,但我不准备花更多的时间来解释。而且我绝对不会花时间试着去解决你的应用程序变成的乱七八糟的乱七八糟的东西。

相关问题