本文實例講述了Android編程實現在Activity中操作刷新另外一個Activity數據列表的方法。分享給大家供大家參考,具體如下:
做Android項目中遇到這樣一個問題:有兩個acticity,一個顯示好友列表,另外一個顯示會話列表,現在問題是在會話界面增加一個添加好友功能,添加好友后要求實時的刷新好友列表。
想了想,找了兩種方式
方法一:通過聲明要刷新的activity(FriendActivity)為靜態變量,然后在一個activity(SessionActivity)中直接調用刷新方法
在FriendActivity中聲明靜態變量
public static FriendActivity instance = null;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); instance = this; initViews();}在SessionActivity中直接調用FriendActivity中的刷新好友列表方法即可:
@Overrideprotected 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中通過動態注冊廣播消息
@Overrideprotected 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 receiverprivate BroadcastReceiver mRefreshBroadcastReceiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { String action = intent.getAction(); if (action.equals("action.refreshFriend")) { reFreshFrinedList(); } }};這樣就很好的實現了在一個Activity中實時刷新另外一個Activity數據列表,這種方式更加的靈活方便。
最后,不要忘記銷毀注冊
@Overrideprotected void onDestroy() { super.onDestroy(); unregisterReceiver(mRefreshBroadcastReceiver);}更多關于Android相關內容感興趣的讀者可查看本站專題:《Android編程之activity操作技巧總結》、《Android開發入門與進階教程》、《Android資源操作技巧匯總》、《Android數據庫操作技巧總結》、《Android視圖View技巧總結》及《Android控件用法總結》
希望本文所述對大家Android程序設計有所幫助。
新聞熱點
疑難解答