在进行更改后,使用Parse.com数据正确刷新ListView

时间:2014-03-18 15:21:46

标签: android listview android-listview parse-platform

我设置了两个活动,一个收件箱和详细信息活动。收件箱活动只是消息的ListView,详细信息视图是单击单元格后的消息本身。

现在我最初从parse传入objectID并获得第二个活动上的intent数据就好了。我甚至构造了删除消息并返回初始收件箱活动的方法:

deleteButton.setOnClickListener(new View.OnClickListener() {

   @Override
   public void onClick(View v) {
      ParseObject.createWithoutData("User_Messages",
         messageObjectId).deleteInBackground(new DeleteCallback() {
            @Override
            public void done(ParseException e) {
               if (e == null) {
                  finish();
                  Toast.makeText(getApplicationContext(), 
                     "You have deleted your message", Toast.LENGTH_SHORT).show()
               }
            }
         });
      }
 });

现在的问题是,有时当返回到收件箱活动时,邮件仍会出现在ListView中,即使在收件箱活动的onCreate / onResume中我也有Async任务来获取和设置数据的适配器。因为我有完成();在解析块的完成部分中,我认为收件箱活动会调用异步任务来再次获取/设置适配器,那么为什么用户返回后偶尔不能正常刷新?

2 个答案:

答案 0 :(得分:2)

您使用的是YourAdapter.notifyDataSetChanged()吗?或者只是你设置列表的适配器中的notifyDataSetChanged()?

答案 1 :(得分:1)

我猜您的适配器正在缓存您的数据。您必须告诉适配器更新/重新加载它的数据。 试试这个,希望它有效

adapter.notifyDataSetChanged();