Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在片段屏幕android中更新活动方法?_Android_Listview_Android Fragments_Android Broadcast_Android Broadcastreceiver - Fatal编程技术网

如何在片段屏幕android中更新活动方法?

如何在片段屏幕android中更新活动方法?,android,listview,android-fragments,android-broadcast,android-broadcastreceiver,Android,Listview,Android Fragments,Android Broadcast,Android Broadcastreceiver,我在片段活动中有方法,如果该方法触发,我需要更新片段列表视图。我在处理数据库。在这里,我将清除特定用户的数据库,并更新片段 问题是:若用户处于同一屏幕中,那个么若触发了片段活动方法,那个么如何更新片段列表视图?它只在我需要返回活动并且再次需要回到同一屏幕时才起作用 以下是代码: public class ActivityExpertDasboard extends ActivityBase { // this method is calling when particular use

我在片段活动中有方法,如果该方法触发,我需要更新片段列表视图。我在处理数据库。在这里,我将清除特定用户的数据库,并更新片段

问题是:若用户处于同一屏幕中,那个么若触发了片段活动方法,那个么如何更新片段列表视图?它只在我需要返回活动并且再次需要回到同一屏幕时才起作用

以下是代码:

public class ActivityExpertDasboard extends ActivityBase {

     // this method is calling when particular user closes the screen. when I am in fragment screen..
    @Override
    protected void onChatInvitation(String msgKeys, String userId) {
        String msgKey = mApplication.returnEmptyStringIfNull(msgKeys);
        LogMessage.e("username",   mPreference.getStringFromPreference(Constants.CLOSE_CHAT_USERNAME));
        if (userId.equalsIgnoreCase(mPreference.getStringFromPreference(Constants.CLOSE_CHAT_USERNAME))) {
            if (msgKey.equalsIgnoreCase(Constants.CODE_CHAT_END)) {
                AAEDatabaseHelper.deleteUsername(mPreference.getStringFromPreference(Constants.CLOSE_CHAT_USERNAME));
                // I need to update in Fragment screen if this is triggered.
                }
        }
        super.onChatInvitation(msgKey, userId);
    }
}
FragmentExpertLiveChats:

public class FragmentExpertLiveChats extends Fragment {

    private List<LiveChatDetails> list;

     @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_chat_history, container,
                Constants.ATTACH_TO_ROOT);
     list = AAEDatabaseHelper.getLiveChatDetails(Constants.TABLE_LIVE_CHAT);
    }

    @Override
    public void onStart() {
        LogMessage.e("onStart", "onStart");
        super.onStart();
        updateUI();
    }


}
公共类FragmentExpertLiveChats扩展了Fragment{
私人名单;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
返回充气机。充气(R.layout.fragment_chat_历史,容器,
常数。将_附加到_根);
list=AAEDatabaseHelper.getLiveChatDetails(Constants.TABLE\u LIVE\u CHAT);
}
@凌驾
public void onStart(){
LogMessage.e(“onStart”、“onStart”);
super.onStart();
updateUI();
}
}

如果手机在FragmentExpertLiveChat屏幕中未执行任何操作,并且在activity calls中使用If方法,如何更新行?我需要使用广播接收器吗?如果是,地点和方式

对于这种情况,以及更多需要在不同组件之间进行通信的情况,我建议使用。它的用法非常简单:

  • 定义事件:
    public class MessageEvent{/*其他字段,如果需要
    需要*/
    }

  • 准备订阅服务器注册您的订阅服务器(在onCreate或 构造函数):
    eventBus.register(此)

  • 声明您的订阅方法:
    @Subscribe public void
    OneEvent(AnyEventType事件){/*做某事*/}

  • 发布事件:
    eventBus.Post(事件)
  • 以后别忘了注销。我建议您在“开始/停止”或“暂停/恢复”中进行注册/注销,或者在出现碎片的情况下,附加/删除标记


    在您的情况下,在片段中注册,在活动中注册,当用户做他的事情时,发布事件。

    对于这一点,以及更多需要在不同组件之间进行通信的情况,我建议使用。它的用法非常简单:

  • 定义事件:
    public class MessageEvent{/*其他字段,如果需要
    需要*/
    }

  • 准备订阅服务器注册您的订阅服务器(在onCreate或 构造函数):
    eventBus.register(此)

  • 声明您的订阅方法:
    @Subscribe public void
    OneEvent(AnyEventType事件){/*做某事*/}

  • 发布事件:
    eventBus.Post(事件)
  • 以后别忘了注销。我建议您在“开始/停止”或“暂停/恢复”中进行注册/注销,或者在出现碎片的情况下,附加/删除标记


    在您的情况下,在Fragment中注册,并在Activity中,当用户执行其操作时,发布事件。

    在OnChatInvestment方法中,您可以检查FragmentExpertLiveChats是否为null,然后调用fragmentExpertLiveChatsInstance.updateUI()或者您可以在OnChatInvestment方法中使用您可以检查FragmentExpertLiveChats是否为null,然后调用fragmentExpertLiveChatsInstance.updateUI()或您可以使用