完成下一个按钮操作后如何实现从arraylist获取和显示字符串

Posted

技术标签:

【中文标题】完成下一个按钮操作后如何实现从arraylist获取和显示字符串【英文标题】:how to implement to get and display the string from arraylist when next button action is done 【发布时间】:2013-01-31 11:36:34 【问题描述】:

我是安卓新手..

在显示下一个问题时,我在 Nextbutton 中遇到问题...

在我第一次设置文本时,我得到了正确的问题并匹配了四个选项答案。我需要的是..

我有一个用于显示下一个问题和答案的下一个按钮。当单击下一个按钮时,我可以获得下一个问题的下四个选项..但是在我点击下一个四次后我无法得到下一个问题,它显示下一个问题……但答案是正确的。

我做错了什么?我错过了什么?

任何帮助将不胜感激...提前非常感谢..

      protected String doInBackground(String... args) 
    List<NameValuePair> params = new ArrayList<NameValuePair>();
        System.out.println("cool");
    params.add(new BasicNameValuePair("tid", tid));
    json = jsonParser.makeHttpRequest(url_get_quesurl, "GET", params);
    System.out.println("ques value got");
    Log.d("All Groups: ", json.toString());
        System.out.println("question");
    try 
    int success = json.getInt(TAG_SUCCESS);
    System.out.println("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 question = c.getString(TAG_QUES);
      System.out.println("Checking ::"+question);
    ques1.add(question);
    String answer = c.getString(TAG_ANSW);
    System.out.println("Checking ::"+answer);
    answ1.add(answer);
           
         else 
            showAlert();
        
     catch (JSONException e) 
        System.out.println("Error "+e.toString());
    
    return null;
  
   protected void onPostExecute(String file_url) 
    pDialog.dismiss();
      ques1=new ArrayList<String>(new ArrayList<String>(ques1));
            //  j=0;
            TextView txtque = (TextView) findViewById(R.id.que_txt); 
            txtque.setText(ques1.get(j));
    answ1=new ArrayList<String>(new ArrayList<String>(answ1));
            btn_practice1.setText(answ1.get(0));
            btn_practice2.setText(answ1.get(1));
            btn_practice3.setText(answ1.get(2));
            btn_practice4.setText(answ1.get(3));
         btn_practicerg.setOnCheckedChangeListener(new OnCheckedChangeListener() 
                @Override
                public void onCheckedChanged(RadioGroup group, int checkedId)  
                    RadioButton radioButton = (RadioButton) findViewById(checkedId);
                   // Toast.makeText(Question.this, "" + radioButton.getText(), 2000).show(); 
                    TextView txtRadio = (TextView) findViewById(R.id.rdtxt); 
                    txtRadio.setText("" + radioButton.getText());
                
    );
        Button nextBtn = (Button) findViewById(R.id.nxt_btn);
        nextBtn.setOnClickListener(new Button.OnClickListener()
          public void onClick(View v)  
          j++;
        TextView txtque = (TextView) findViewById(R.id.que_txt); 
        txtque.setText(ques1.get(j)); 
        k++;
        btn_practice1.setText(answ1.get((k*4)+0));
        btn_practice2.setText(answ1.get((k*4)+1));
        btn_practice3.setText(answ1.get((k*4)+2));
        btn_practice4.setText(answ1.get((k*4)+3));
         
       );

【问题讨论】:

制作一个自定义适配器,使用它可以得到字符串形式的数组。 我怎么看不懂..你能用我的代码举一些例子吗...我是android新手..帮助我 你的问题和答案在哪里?使用本地或网络服务? webservice...我从 JSON 对象得到问题和答案,问题存储在 ques1 arrayList 中,答案存储在 answ1 ArrayList.. 请发布完整的代码,我的意思是你如何存储问题? 【参考方案1】:

问题是您当时将答案存储在 answ1 数组中,四个空字符串添加到 ques1 数组中,因此您在按下按钮四次后得到下一个问题....

为此维护两个索引,一个用于问题,另一个用于答案..

【讨论】:

是的,我只维护两个索引,“j”表示问题,“k”表示答案......它没有得到下一个问题......我真的做错了什么我不知道请帮助我.. fnd.. 请提供您的网络服务链接以获取问题和答案? 它没有在谷歌浏览器中打开显示以下错误.......糟糕!谷歌浏览器无法连接到 10.0.2.2 你将如何打开这个链接,它是我指向文件 ques_ans1.php 的路径链接。我无法理解你的问题..你需要什么链接..frnd 你在哪里得到问题和答案【参考方案2】:

制作你的数组:

ArrayList&lt;String&gt; Question = new ArrayList&lt;String&gt;(); ArrayList&lt;String&gt; Answer = new ArrayList&lt;String&gt;();

增加您的价值:

Question.add(json_data.getString("QUESTION_TAG").toString()); Answer.add(json_data.getString("ANSWER_TAG").toString());

检查列表长度,您必须在按钮单击时更新索引。

按钮点击事件:

Question.get(index).toString(); Answer.get(index).toString();

在这里,您可以在每次点击后使用您的数据并更新索引,如果您的答案 id 为真。

注意: 你的索引应该被维护,否则它会抛出indexoutofrangeexception Exception。

希望你能按照这个来管理。

【讨论】:

好吧 TAG_QUES & TAG_ANSW 是你的 json 代码。现在就像您在循环中添加数据然后在按钮单击事件中获取索引一样。我不知道你的问题在哪里? 查看我的更新...请帮助我..我真的不知道我在哪里做错了..我错过了什么?我是安卓新手.. 解决您的问题还是仍然遇到问题?我给你投票了 查看此链接并回答我请帮我..***.com/questions/14685873/…

以上是关于完成下一个按钮操作后如何实现从arraylist获取和显示字符串的主要内容,如果未能解决你的问题,请参考以下文章

struts2+jquery如何实现点击“上传”按钮,实现从本机选择图片,然后自动上传,类似于上传证件的那种

如果其他ArrayList中的条件为true,如何从ArrayList中删除项目

用C++如何读取图片

ArrayList 源码详细分析

jsp点击一个按钮后禁用按钮,执行完事件后再启用按钮

面试必问之ArrayList