您好,登錄后才能下訂單哦!
本文實例講述了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程序設計有所幫助。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。