希望你能帮忙解决这个问题。
我有PostFragment
,其中包含RecyclerView
个帖子的所有帖子。我们的想法是让用户点击FAB,将其带到NewPostActivity
,允许他们回复。如何按{&1 39}发布'在PostFragment
。
目前我已在片段中尝试了NewPostActivity
,但它无法正常工作。这是我点击“发布”时的代码。按钮。
onResume
我的private void addPost() {
String newPost = replaceHTMLTags(mPostMessage.getHtml());
String threadID = PreferenceConnector.readString(getApplicationContext(),
"threadID");
String username = PreferenceConnector.readString(getApplicationContext(),
"username");
mDataFactory = new PostFeedDataFactory(this);
mDataFactory.createNewPost(threadID, newPost, username,
new PostFeedDataFactory.PostFeedDataFactoryCallback() {
@Override
public void onPostDataReceived(PostResponse response) {
Toast.makeText(getApplicationContext(), "Posted successfully",
Toast.LENGTH_LONG).show();
finish();
}
@Override
public void onPostDataFailed(Exception exception) {
Toast.makeText(getApplicationContext(), exception.getMessage(),
Toast.LENGTH_LONG).show();
finish();
}
});
}
基本上只是
onResume
我试着在这里读书但是找不到合适的东西。
提前致谢。
答案 0 :(得分:1)
您可以选择在活动中创建静态方法:
if (mAdapter != null) {
mAdapter.notifyDataSetChanged();
}
然后在PostFeedDataFactoryCallback()
之前的finish()
两种方法中调用它。
此外,如果您将第二个类作为活动启动,则始终可以将其作为startActivityForResult()
启动,然后实现方法onActivityResult()
,以通知适配器进行更改。在这种情况下,您在每个finish()之前添加的内容是:
setResult(Activity.RESULT_OK, your_data);
在这里查看示例: https://tylenoly.wordpress.com/2010/10/27/how-to-finish-activity-with-results/
答案 1 :(得分:0)
我没有在代码中看到您在适配器中添加新帖子的部分。 您必须setItems然后调用notifyDatasetChanged才能生效。
如果PostFragment在ActivityA中与NewPostActivity不同,那么您可以使用PostFragment生命周期来刷新适配器,方法是将所有帖子检索为最简单(不是更有效)的解决方案。
答案 2 :(得分:0)
有很多方法可以做到这一点,但最有效的方法是事件总线。这是一个例子:https://github.com/greenrobot/EventBus
我建议您最好使用事件总线开始构建应用程序,作为活动,片段和事件线程之间的通信方式。这可能不是您正在寻找的答案,但绝对是一个更好的解决方案。