我的页面中的搜索选项

时间:2013-03-29 10:21:16

标签: android

我正在开发一个基于问题和答案的应用程序。

我正在使用res / raw数据库来获取数据,  我计划有一个搜索选项,即,  我在底部放了一个搜索框,说我有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;
        }

1 个答案:

答案 0 :(得分: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());
}
}

现在你的questionList为0(索引0)将包含与问题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();

如果您可以直接从原始数据库访问位置45的问题集,则无需使用上述内容。由于arraylist存储了所有数据,因此上述过程并不理想。当尺寸增加时,可能会减慢操作速度。

如果您是用于存储问题和答案的数据库(sqlite),则可以更轻松地从查询中的数据库中获取数据。