
我有一个ListVIEw.我想动态更改列表视图的内容.我使用了“ adapter.notifyDataSetChanged();”.更改内容.我也尝试将ListvIEw的适配器设置为null,但仍然得到相同的结果.它正在刷新,但未清除列表视图,而是将其与以前的结果附加在一起.我想要的是以前的内容应该删除,并且应该显示新的结果.
我无法理解我的错误在哪里以及我丢失了什么.
如果有人可以帮助我,我将非常感激.
下面是生成列表视图的代码
public voID ListDrawer() { try { JsONObject JsonResponse = new JsONObject(JsonResult); JsONArray JsonMainNode = JsonResponse.optJsONArray("myRegisteredList"); for (int i = 0; i < JsonMainNode.length(); i++) { JsONObject JsonChildNode = JsonMainNode.getJsONObject(i); String registered_name = JsonChildNode.optString("seminar"); String org = JsonChildNode.optString("organizer"); String sem_ID = JsonChildNode.optString("ID"); String r_sem = JsonChildNode.optString("seminar_ID"); registeredList = new HashMap<String, String>(); registeredList.put("registeredList", registered_name); registeredList.put("seminar_ID", r_sem); registeredList.put("sem_ID", sem_ID); registeredList.put("organizer", org); registeredList.add(registeredList); } } catch (JsONException e) { //Toast.makeText(this, e.getMessage().toString() + " 1", Toast.LENGTH_LONG).show(); Toast.makeText(VIEwReservedSeminarList.this, "Sorry...You don't have any reserved seminar/s.", Toast.LENGTH_LONG).show(); } try{ simpleAdapter = new SimpleAdapter(this, registeredList, androID.R.layout.simple_List_item_2, new String[] { "registeredList" ,"organizer", "seminar_ID" }, new int[] { androID.R.ID.text1 , androID.R.ID.text2 , androID.R.ID.Title }); ListVIEw.setAdapter(simpleAdapter); ListVIEw.setonItemClickListener(new OnItemClickListener(){ @OverrIDe public voID onItemClick(AdapterVIEw<?> a, VIEw v, int i, long l) { // Todo auto-generated method stub @SuppressWarnings("unchecked") HashMap<String, String> selected_row = (HashMap<String, String>) simpleAdapter.getItem(i); s_ID = selected_row.get("seminar_ID"); Intent intent = new Intent(VIEwReservedSeminarList.this, ReservedSeminar.class); startActivity(intent); //Toast.makeText(VIEwReservedSeminarList.this, "Selected Item : "+s_ID, Toast.LENGTH_LONG).show(); } }); }catch(Exception e){ //Toast.makeText(this, e.getMessage().toString() + " 2", Toast.LENGTH_LONG).show(); Toast.makeText(VIEwReservedSeminarList.this, "There is no data being fetched", Toast.LENGTH_LONG).show(); }}下面是我放在onCreate方法上以每10秒刷新一次ListvIEw的代码段.我在accessWebService方法下调用ListDrawer方法.
final Handler handler = new Handler(); handler.postDelayed( new Runnable(){ @OverrIDe public voID run(){ accessWebService(); handler.postDelayed(this, 10 * 1000); Log.i("TAG", "notify"); } }, 10 * 1000 ); 解决方法:
请尝试以下方法:
清除arrayList / HashMap
新增项目
adapter.notifyDataSetChanged();
设置适配器.
总结以上是内存溢出为你收集整理的清除Android ListView全部内容,希望文章能够帮你解决清除Android ListView所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)