完成下一个按钮操作后如何实现从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<String> Question = new ArrayList<String>();
ArrayList<String> Answer = new ArrayList<String>();
增加您的价值:
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如何实现点击“上传”按钮,实现从本机选择图片,然后自动上传,类似于上传证件的那种