Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 更新位于其他选项卡中的ListView_Android_Android Activity_Tabs_Tabactivity - Fatal编程技术网

Android 更新位于其他选项卡中的ListView

Android 更新位于其他选项卡中的ListView,android,android-activity,tabs,tabactivity,Android,Android Activity,Tabs,Tabactivity,我是一名Android新手,我正在尝试创建一个包含两个选项卡的Android应用程序,每个选项卡使用活动。这基本上就是它的工作原理: 选项卡A有一个按钮 选项卡B有1个列表视图 当用户单击选项卡A中的按钮时,应用程序必须在选项卡B的ListView中输入一个值 我的问题是:单击选项卡A中的按钮时,如何更新选项卡B中的ListView?当ListView位于按钮所在的同一选项卡上时,我知道如何将值放入ListView,但当ListView位于不同选项卡时,我的方法不起作用。我试过 ListVi

我是一名Android新手,我正在尝试创建一个包含两个选项卡的Android应用程序,每个选项卡使用活动。这基本上就是它的工作原理:

  • 选项卡A有一个按钮
  • 选项卡B有1个列表视图
  • 当用户单击选项卡A中的按钮时,应用程序必须在选项卡B的ListView中输入一个值
我的问题是:单击选项卡A中的按钮时,如何更新选项卡B中的ListView?当ListView位于按钮所在的同一选项卡上时,我知道如何将值放入ListView,但当ListView位于不同选项卡时,我的方法不起作用。我试过

ListView myListInTabB = (ListView)findViewById(R.id.list_on_tabB);
但不起作用:-/

有什么建议吗?
提前谢谢。

你不能那样做。只需确保底层适配器具有最新数据即可。在光标上调用
requery()
,会自动更新附加到它的ListView


编辑:使用
notifyDataSetChanged()
让列表知道数据已过时。

我不确定您是否确实需要单独的活动来完成此操作,除非您在活动之间做一些特定的工作。您在Android解决方案中看到的大多数选项卡解决方案都只是隐藏与当前显示的选项卡无关的视图。您会发现“可见性”属性有助于实现这一点。另外,确保所有视图都在同一活动中,可以让您始终访问它们的对象,而不管它们的可见性如何。

看到这一点:您应该检查我的答案,我认为现在最好这样做。我要补充的是,您必须调用notifyDataSetChanged()以允许适配器显示其新数据。实际上,requery()已被弃用。现在建议您只需创建一个新游标并将其重新连接到适配器,然后通知适配器其基础数据集已更改。看见