android - 我可以在另一个 Activity 中更新一个 Activity 中的 ListView 吗?

标签 android listview android-activity tabs android-intent

我目前有一个包含 2 个选项卡的选项卡布局,一个选项卡带有 ListView ,另一个选项卡带有 make strings 选项,因此我可以将它们添加到 ListView 中。这两个选项卡都有自己的 Activity ,因为这使代码更加结构化,我以后就不必重复了。

假设我在提供我创建字符串的选项卡中,然后我按下更新列表按钮,如何在没有 startActivity() 的情况下更新 ListView ?如果我使用 startActivity(),它会启动 List.java,而不是在 ListView 选项卡中显示列表,而是全屏显示,这违背了选项卡 View 的目的。换句话说,startActivity() 从列表的选项卡 View 中窃取焦点,并将其全屏发送。

感谢您的宝贵时间。

编辑:我想更新我的 ListView 选项卡中的 Activity ,而不启动进入全屏的新 Activity ,并且不更新选项卡中的 Activity 。

最佳答案

一种解决方案是将您的数据模型与您的 View ( Activity )分开,这通常是一种很好的做法,但在这种情况下,允许您的两个选项卡与同一模型进行交互。

您可以在 Application 类中提供对数据模型的访问。然后,当在您的列表 Activity 上调用 onResume 时,您可以根据当前数据更新 View 。

编辑:

public class MyApplication extends Application {
   private List<MyObject> myData;

   public List<MyObject> getMyData() {
     return myData; 
   }

   public void setMyData(List<MyObject> mydata) {
     this.myData = myData;
   }
}

在您的 list 中,您需要添加应用程序标签以指定它应使用 MyApplication 作为应用程序类。

然后,在您的 Activity 中:

   public void onResume() {
      MyApplication app = (MyApplication) getApplication();
      List<MyData> data = app.getMyData();
      // update  my view with the data
   }

关于android - 我可以在另一个 Activity 中更新一个 Activity 中的 ListView 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3859798/

相关文章:

java - 在 XML 中的 ListView 上方添加 header

javascript - Android 4 Chrome 在 CSS 转换后点击触摸事件的测试问题

java - 需要通过行检测来检测 RecyclerView 上的点击和触摸事件

ANDROID STUDIO > Sqlite、Listview 和 Onclick 基本示例

Android:从选项卡或 Intent 获取 Activity ?

android - Android Activity/服务中的多个线程

android.content.ActivityNotFoundException,无法启动 Activity

android - 抽屉导航,ResourceNotFoundException

android - 如何更改Android中数字选择器的背景颜色

jQuery Mobile .listview ('refresh' )不工作