Как сравнить значения из persistentObject в blackberry - PullRequest
0 голосов
/ 24 июня 2010

Я разрабатываю приложение blackberry в плагине jdp для eclipse. Я хочу сохранить некоторые значения из массива в массиве флэш-памяти устройства blackberry, а также проверить, уже существует ли значение dat в памяти или нет. Я даюкод, который я пытался сделать с постоянным объектом, но иногда я не могу получить хочу, пожалуйста, измените код, где reqd

package com.firstBooks.series7.db;

import java.util.Random;
import com.firstBooks.series7.AppMain;
import com.firstBooks.series7.db.parser.XMLParser;
import net.rim.device.api.system.PersistentObject;
import net.rim.device.api.system.PersistentStore;

public class DBMain {
  public static String answer = "";
  public static String selectedAnswer = "";
  public static Question curQuestion;

  public static int currQuesNumber = 1;
  public static int correctAnswerCount = 0;
  public static int totalNumofQuestions = 50 ;

  static int quesNum[] = new int[20];
  static int quesNumNew[];
  static int quesCount = -1;

  static int randomPosition;
  static PersistentObject store;
  static {
    store = PersistentStore.getPersistentObject( 0xf9f8c7a20bc35c51L);
  }

  static{   
    initialize();   
  }

  private static void initialize(){

    Random rgen = new Random();  // Random number generator

    //--- Initialize the array 
    for (int i=0; i<quesNum.length; i++) {
      quesNum[i] = i;
    }

    //--- Shuffle by exchanging each element randomly
    for (int i=0; i< quesNum.length; i++) {
      randomPosition = rgen.nextInt(quesNum.length);

      int temp = quesNum[i];

      quesNum[i] = quesNum[randomPosition];

      quesNum[randomPosition] = temp;

      synchronized(store) {
        if(quesNum[randomPosition]!=quesNum[i]){
          System.out.println("...........i can do it............ ");
          store.setContents(quesNum);
          store.commit();
        }
      }
    }
  }

  /*Changed the code to get a unique random number
   * @author: Venu   
   */
  public static int getQuestionNumber() {
    quesCount++;
    if(quesCount < quesNum.length){
      synchronized(store) {
        int [] quesNumNew = (int[])store.getContents();

        return quesNumNew[quesCount];
      }
    }
    else{ 
      initialize();
      quesCount = -1;
      return getQuestionNumber();
    }
  }
}

1 Ответ

0 голосов
/ 24 июня 2010

С какой проблемой вы сталкиваетесь?Вы пытались обернуть массив в объект, который реализует интерфейс Persistable?Это похоже на интерфейс Serializable в j2se.

также см .: http://www.blackberry.com/developers/docs/4.5.0api/net/rim/device/api/util/Persistable.html

«Класс должен явно реализовать этот интерфейс, чтобы система постоянно сохраняла экземпляры класса».

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