2013-03-29 28 views
0

我正在開發一個基於問題和答案的應用程序。我的頁面中的搜索選項

我使用RES /原始數據庫獲取數據, 我打算對IE瀏覽器的搜索選項, 我一直在底部的搜索框,說我有100個問題, 我想要做的事通過在搜索框中輸入數字來轉到問題45。 我沒有任何想法在這方面的工作。 請幫我找到一個解決方案

protected void loadQuestionset1() throws Exception { 
try { 
InputStream questionset1 = this.getBaseContext().getResources() 
        .openRawResource(R.raw.questionset1); 
bReader = new BufferedReader(new InputStreamReader(questionset1)); 
StringBuilder quesString = new StringBuilder(); 
      String aJsonLine = null; 
      while ((aJsonLine = bReader.readLine()) != null) { 
       quesString.append(aJsonLine); 
      } 
Log.d(this.getClass().toString(), quesString.toString()); 
      JSONObject quesObj = new JSONObject(quesString.toString()); 
      quesList1 = quesObj.getJSONArray("Questions"); 
      Log.d(this.getClass().getName(), 
        "Num Questions " + quesList1.length()); 
      } 
catch (Exception e){ 

      } finally { 
       try { 
        bReader.close(); 
       } catch (Exception e) { 
        Log.e("", e.getMessage().toString(), e.getCause()); 
       } 

      } 


     } 
public static JSONArray getQuesList1() { 
      return quesList1; 
     } 
+0

編寫您自己的搜索代碼。得到第45個問題的數據並顯示。 – Raghunandan

回答

0
public ArrayList<NewQuestion> questionList=new ArrayList<NewQuestion>(); 

你從數據庫

NewQuestion newQuestion=new NewQuestion();  
newQuestion.question.put(NewQuestion.QUESTION_TEXT,q); 
newQuestion.question.put(NewQuestion.OPTION_1,q); 
newQuestion.question.put(NewQuestion.QPTION_2,q); 
newQuestion.question.put(NewQuestion.OPTION_3,q); 
newQuestion.question.put(NewQuestion.OPTION_4,q);  
questionList.add(newQuestion);  


public class NewQuestion { 

public static List<String> q12=new ArrayList<String>(); 
public static final String QUESTION_TEXT="questionText"; 
public static final String OPTION_1="option1"; 
public static final String OPTION_2="option2"; 
public static final String OPTION_3="option3"; 
public static final String OPTION_4="option4"; 
public static final String CORRECT_ANSWER="answer"; 

Hashtable question=new Hashtable(); 

public NewQuestion() 
{ 

    question.put(NewQuestion.QUESTION_TEXT,new String()); 
    question.put(NewQuestion.OPTION_1,new String()); 
    question.put(NewQuestion.OPTION_2,new String()); 
    question.put(NewQuestion.OPTION_3,new String()); 
    question.put(NewQuestion.OPTION_4,new String()); 
    question.put(NewQuestion.CORRECT_ANSWER,new String()); 
} 
} 

現在您的0(索引0)questionList得到問題每次將包含對問題1的相關數據。當用戶鍵入40時,您可以訪問數據40

 newQuestion=(NewQuestion)questionList.get(questionNo);//question no 45 

     String q=newQuestion.question.get(NewQuestion.QUESTION_TEXT).toString();//get question 
     String op1=newQuestion.question.get(NewQuestion.OPTION_1).toString(); 
     String op2=newQuestion.question.get(NewQuestion.OPTION_2).toString(); 
     String op3=newQuestion.question.get(NewQuestion.OPTION_3).toString(); 
     String op4=newQuestion.question.get(NewQuestion.OPTION_4).toString(); 

如果您可以訪問questionset在位置45直接形成你的原始數據庫,不需要使用上面的。由於ArrayList存儲所有數據,因此上述過程並不理想。當尺寸增加時可能會減慢操作速度。

如果您用於存儲問題和答案的數據庫(sqlite),使用查詢中的數據庫獲取數據將更容易。

+0

感謝您的回答 – preethi