0

我在测验应用程序中遇到问题...

我的问题是..

我通过 JSON 获得了 Questionid、问题和答案。我用单键存储在哈希图中。现在我想做的是...

如何根据 questionid 从 hashmap 获取问题和答案..在文本视图中显示问题并在单选按钮中显示答案...

我该如何实施?任何帮助将不胜感激......提前非常感谢......

  protected void onPostExecute(String file_url) {
   pDialog.dismiss();   
       List<NameValuePair> params = new ArrayList<NameValuePair>();
    params.add(new BasicNameValuePair("tid", tid));
    JSONObject json = jsonParser.makeHttpRequest(url_get_quesid, "GET", params);
    json = jsonParser.makeHttpRequest(url_get_quesurl, "GET", params);
      try {
    int success = json.getInt(TAG_SUCCESS);
    if (success == 1) {
    System.out.println("Success");
    groups = json.getJSONArray(TAG_GROUP);
    System.out.println("Result Success+++"+groups);
    for (int i = 0; i < groups.length();i++) {
    JSONObject c = groups.getJSONObject(i);
    String questionid = c.getString(TAG_QUESID);
    String question = c.getString(TAG_QUES);
    String answer = c.getString(TAG_ANSW);
    System.out.println("Checking ::"+questionid);
    id=questionid;         
    quesid.add(questionid);
    HashMap<String, String> map = new HashMap<String, String>();
    map.put(questionid,  question + ";" + answer);                  
    System.out.println("QuestionIDMap:"+map);
        }
    } else {
    showAlert();
}
    } catch (JSONException e) {
    System.out.println("Error "+e.toString());
    }       
}
4

2 回答 2

1

首先,您想使用您的 questionid 作为地图键。

一旦你有了它,你就可以简单地做一些类似的事情;

字符串总计 = map.get(questionid); String[] split = total.split(";");

字符串问题 = split[0]; 字符串答案 = split[1];


总的来说,我宁愿推荐使用数据库,然后将所有内容保存在集合中。

于 2013-01-30T13:55:52.433 回答
0

map是本地的onCreate()。这意味着onCreate()完成后,您的地图将被销毁,您将无法再访问它。将地图作为Activity. 然后你可以从任何你想要的地方访问它并做得到map.get(questionId)问题。

您的活动将如下所示:

public class YourActivity extends Activity {
    private HashMap<String, String> questions = new HashMap<String, String>();



    protected void onPostExecute(String file_url) {
       pDialog.dismiss();   
           List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("tid", tid));
        JSONObject json = jsonParser.makeHttpRequest(url_get_quesid, "GET", params);
        json = jsonParser.makeHttpRequest(url_get_quesurl, "GET", params);
        try {
            int success = json.getInt(TAG_SUCCESS);
            if (success == 1) {
                System.out.println("Success");
                groups = json.getJSONArray(TAG_GROUP);
                System.out.println("Result Success+++"+groups);
                for (int i = 0; i < groups.length();i++) {
                    JSONObject c = groups.getJSONObject(i);
                    String questionid = c.getString(TAG_QUESID);
                    String question = c.getString(TAG_QUES);
                    String answer = c.getString(TAG_ANSW);
                    System.out.println("Checking ::"+questionid);
                    id=questionid;         
                    quesid.add(questionid);         
                    questions.put(questionid,  question + ";" + answer);                  
                    System.out.println("QuestionIDMap:"+map);
                }
            } else {
                showAlert();
            }
        } catch (JSONException e) {
            System.out.println("Error "+e.toString());
        }       
    }
}

然后,您可以Activity通过执行从您的任何地方访问问题questions.get(questionId)

于 2013-01-30T13:59:08.873 回答