2013-03-29 30 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