欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android编程实现在Activity中操作刷新另外一个Activity数据列表的方法

程序员文章站 2023-01-02 23:04:25
本文实例讲述了android编程实现在activity中操作刷新另外一个activity数据列表的方法。分享给大家供大家参考,具体如下: 做android项目中遇到这样一...

本文实例讲述了android编程实现在activity中操作刷新另外一个activity数据列表的方法。分享给大家供大家参考,具体如下:

做android项目中遇到这样一个问题:有两个acticity,一个显示好友列表,另外一个显示会话列表,现在问题是在会话界面增加一个添加好友功能,添加好友后要求实时的刷新好友列表。

想了想,找了两种方式

方法一:通过声明要刷新的activity(friendactivity)为静态变量,然后在一个activity(sessionactivity)中直接调用刷新方法

在friendactivity中声明静态变量

public static friendactivity instance = null;
@override
protected void oncreate(bundle savedinstancestate) {
  super.oncreate(savedinstancestate);
  setcontentview(r.layout.activity_main);
  instance = this;
  initviews();
}

在sessionactivity中直接调用friendactivity中的刷新好友列表方法即可:

@override
protected void onactivityresult(int requestcode, int resultcode, intent intent) {
  if (requestcode == request_code_new_contact && resultcode == result_ok) {
    friendactivity.instance.refreshfriendlist();
  }
}

当然,这种方式使用的是静态变量,你需要及时释放内存。

第二种方法:使用广播机制,在sessionactivity添加好友时进行广播,而friendactivity中通过动态注册广播消息进行receive,当接受到消息时,在friendactivity中自己进行更新

sessionactivity添加好友时进行广播:

// 广播通知
intent intent = new intent();
intent.setaction("action.refreshfriend");
sendbroadcast(intent);

friendactivity中通过动态注册广播消息

@override
protected void oncreate(bundle savedinstancestate) {
   super.oncreate(savedinstancestate);
   setcontentview(r.layout.activity_main);
   intentfilter intentfilter = new intentfilter();
   intentfilter.addaction("action.refreshfriend");
   registerreceiver(mrefreshbroadcastreceiver, intentfilter);
   initviews();
}
// broadcast receiver
private broadcastreceiver mrefreshbroadcastreceiver = new broadcastreceiver() {
   @override
   public void onreceive(context context, intent intent) {
     string action = intent.getaction();
     if (action.equals("action.refreshfriend"))
     {
       refreshfrinedlist();
     }
   }
};

这样就很好的实现了在一个activity中实时刷新另外一个activity数据列表,这种方式更加的灵活方便。

最后,不要忘记销毁注册

@override
protected void ondestroy() {
    super.ondestroy();
    unregisterreceiver(mrefreshbroadcastreceiver);
}

更多关于android相关内容感兴趣的读者可查看本站专题:《android编程之activity操作技巧总结》、《android开发入门与进阶教程》、《android资源操作技巧汇总》、《android数据库操作技巧总结》、《android视图view技巧总结》及《android控件用法总结

希望本文所述对大家android程序设计有所帮助。