2011-10-18 51 views
0

在我的Android应用程序中,我使用ListView访问显示其他信息和功能的特定View。 一切正常,但当我启动Phonecall函数或打开Weblink(这2个函数在特定视图中可用),然后通过按两次后退按钮回到应用程序时,ListView为空!Android ListView在启动外部应用程序时清除

当我使用Google Maps等内部函数或特定视图中的任何其他内部函数时,不会发生这种情况。

我想在适配器或光标有一些问题。 我只看到adapter.notifyDataSetChanged(),但我没有更改任何数据。我只想让它再次显示。

这里是订单 - > ListView - >选择一个单一的视图 - >例如启动一个PhoneCall - >通过后退按钮返回单一视图 - >通过Backbutton获取ListView并且它是空的!


// public replacing function for ordering the views 
public void replaceView(View v) { 
    history.add(v); 
    setContentView(v); 
} 
// function that is called when the back button is pressed, controlling the views stack 
public void back() { 
    if (history.size() > 0) { 
     history.remove(history.size() - 1); 
     if (history.size() > 0) { 
      setContentView(history.get(history.size() - 1)); 
     } else { 
      finish(); 
     } 
    } else { 
     finish(); 
    } 
} 
// remove site from stack and go the last view (Overriding Back Button) 
@Override 
public void onBackPressed() { 
    FrontPage.group.back(); 
} 

这是后退按钮是如何定义的。 onPause()onResume()不工作

回答

0

你必须保存在ListView和在onResume重建它。 这两个方法必须在您的Activity类中覆盖。

+0

啊好吧,阿迪尔谢谢你的邮件,我稍后会试一试 – user1001303

+0

这不会帮助我,因为我没有暂停ListView。 我从特定视图启动外部应用程序,而不是从ListView中删除。 特定视图中的所有数据都正确加载,但当我通过它返回到ListView时是空的。 这里是订单 - > ListView - >选择一个单一的视图 - >例如启动一个PhoneCall - >通过后退返回到单一视图 - >通过Backbutton获取ListView并且它是空的! – user1001303

+0

如果您开始活动(例如您的电话呼叫),则活动设置为背景,并且您的拨号活动位于前面。在这种情况下,您的Activity的onPause()方法将被调用,并且只要关闭拨号程序,就会调用onResume(),并且您的Activity会重新出现在屏幕上。 – Thommy

相关问题