開發一個發帖功能,用戶點擊發布按鈕跳轉至編輯頁面,發布成功後返回列表頁並自動刷新顯示新數據,類似 QQ 空間「說說」體驗。
採用 startActivityForResult 機制實現頁面間數據回傳與刷新:
// 定義請求碼常量
public static final int REQUEST_CODE_POST = 1001;
// 點擊發布按鈕
btnPost.setOnClickListener(v -> {
Intent intent = new Intent(MainActivity.this, PostEditActivity.class);
startActivityForResult(intent, REQUEST_CODE_POST);
});
// PostEditActivity 中發布成功後
private void onPostSuccess() {
Intent resultIntent = new Intent();
// 可攜帶新發布的數據,或僅設置結果碼
setResult(RESULT_OK, resultIntent);
finish(); // 關閉發帖頁面
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE_POST && resultCode == RESULT_OK) {
// 執行列表數據重新加載邏輯
refreshPostList();
}
}
private void refreshPostList() {
// 從數據庫/網絡獲取最新數據並更新 Adapter
// 例如:
// List newList = PostDao.getAllPosts();
// adapter.setData(newList);
// adapter.notifyDataSetChanged();
}
onActivityResult。
利用 Android 標準的 startActivityForResult 機制,配合 setResult 與 onActivityResult,即可輕鬆實現「發帖-返回-刷新」的閉環流程。代碼結構清晰,符合 Android 開發規範,易於維護擴展。