【问题标题】:Why i am not able to get the data in custom List view after coming back from next activity?为什么从下一个活动回来后我无法在自定义列表视图中获取数据?
【发布时间】:2011-12-15 09:41:49
【问题描述】:

在我的应用程序中有三个屏幕。 1. 主菜单 2.自定义ListViewActivity 3.详情页Activity

现在,我已经为 ListView Activity 实现了适配器和自定义 ListView。 我将向 ListView Activity 添加一些数据。但该数据应从详细页面 Activity 中选择。

因此,从详细信息页面中选择数据后,如果我返回 ListView 活动,则数据不会被反射。但是,如果我完成了 ListView Activity 并从主菜单再次访问 ListView Activity。因此我得到了选定的值。

那怎么了?为什么我从详情页更改数据时无法立即获得效果。

我想每当我回到 ListViewActivity 时,我都必须刷新所有数据。但我不知道怎么做。 那你能帮我吗?

谢谢。

【问题讨论】:

  • 如何设置列表视图活动的数据?从 db 或其他方式获取的数据??
  • 数据取自静态变量。
  • 然后通过将值从 detailaPage 活动传递给 customlistactivity 来重新启动您的列表活动
  • @deepa:我喜欢它。它解决了我的问题。

标签: android listview android-layout android-listview android-2.2-froyo


【解决方案1】:

要刷新您的ListView,请在您的Adapter 上调用notifyDataSetChanged()

【讨论】:

  • 我已经使用它但我仍然无法获得价值。我已从详细信息页面更改。但是在我从主菜单回来之后,我得到了那个数据。那么我应该怎么做呢?从 Detali 页面返回时是否可以再次启动 listActivity。
  • 如果您没有发布任何代码,就无法诊断出问题所在。
  • 是的,你是对的。但我只想在我回到那个活动时重新开始那个活动。
【解决方案2】:
  1. 当您返回列表视图时,您是否正在关联新适配器/刷新列表中的数据?因为您看到的 Listview 来自堆栈。以前的数据。
  2. 或者,在进入详细信息页面时,您可以调用finish for list,这样当您重新启动列表时,您会得到一个更新的列表。

    public void actionPerformed(View v){
      startActivityForResult(getIntent(),0);
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     list.setAdapter(new MyAdapter(data.getExtras()));
     super.onActivityResult(requestCode, resultCode, data);
    }
    

【讨论】:

  • 好的,让我试试你的第二个想法。根据您的第一个想法,我不会关联或刷新列表中的数据。那么该怎么做呢。
  • 完成 ListActivity 并从详细信息重新启动 Activity 对我的应用程序来说不是正确的想法。那么获取数据的其他可能性是什么?
  • 那么你只需要做第一个。只需将 onStart 中的新适配器关联到您的列表视图。它应该可以解决您的问题。或者,您也可以使用 startActivityFOrResult 启动新活动,并在 onActivityResult 中将新适配器关联到您的列表视图。
  • 使用 startActivityForResult 的任何示例代码?对于这种类型的问题?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-27
  • 1970-01-01
  • 2013-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多