【发布时间】:2016-11-17 07:24:46
【问题描述】:
我有一个片段活动'feedlistActivity',我有一个片段'myPostFragment',这个片段包含一个listView,我从那个片段调用startActivityForResult来启动一个新的活动'MyActivity'。
MyActivity.class
Intent returnIntent = new Intent();
returnIntent.putExtra("POST_OBJECT", postData);
setResult(Activity.RESULT_OK, returnIntent);
finish();
MyPostFragment.class
Intent editIntent = new Intent(context, MyActivity.class);
editIntent.putExtra("EDIT_POST", postDetailsData);
startActivity(editIntent);
break;
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == Activity.RESULT_OK) {
if (requestCode == ADD_EDIT_POST ) {
if (data != null && data.hasExtra("POST_OBJECT")) {
PostDetailsData postData = (PostDetailsData) data
.getSerializableExtra("POST_OBJECT");
if (postData != null) {
myPostFeedList.add(postData);
postAdapter.notifyDataSetChanged();
setAdapter();
}
}
}
}
private void setAdapter() {
// if (postAdapter == null) {
postAdapter = new PostListAdapter(context, myPostFeedList);
postAdapter.setSwipeOptionClickedListner(this);
myPostfeedListView.setAdapter(postAdapter);
postAdapter.notifyDataSetChanged();
// } else {
// postAdapter.notifyDataSetChanged();
// }
}
FeedlistActivity.class
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
我的问题是,当我调用“notifyDatasetChanged”并且列表没有立即刷新时,上面的代码对我不起作用
【问题讨论】:
-
您的适配器可能以错误的方式实现。它可能将数据存储在错误的变量中。
-
你能发布 setAdapter() 吗?
-
@VladMatvienko Raghavendra,我已经添加了我的 setadapter 方法,我也用这个方法来初始化加载数据。当时还可以
-
所有东西看起来都不错。请尝试逐行调试,看看您使用的值是否正确
-
检查这个,你可能会找到答案here
标签: android notifydatasetchanged startactivityforresult