Java 如何在更新DB值时刷新片段

Java 如何在更新DB值时刷新片段,java,android,android-fragments,Java,Android,Android Fragments,在我们的应用程序中,我们发送和接收事件。事件以片段形式显示为数据库中的列表视图。若我添加了一个新事件,那个么该事件应该立即显示在片段中。在这里,我想在事件添加到该数据库中时刷新该片段 这是我的代码片段 public class GroupChatFragment extends Fragment { LayoutInflater inflater; ViewGroup container; Bundle savedInstanceState;

在我们的应用程序中,我们发送和接收事件。事件以片段形式显示为数据库中的列表视图。若我添加了一个新事件,那个么该事件应该立即显示在片段中。在这里,我想在事件添加到该数据库中时刷新该片段

这是我的代码片段

   public class GroupChatFragment extends Fragment {
        LayoutInflater inflater;
        ViewGroup container;
        Bundle savedInstanceState;
        private Context context;
        private TextView chatTitle;
        private TextView chatPlace;
        private TextView chatDate;
        private TextView notificationCount;
        private String dateResult;
        private List<EventMO> groupEventMoList = new ArrayList<>();
        private List<EventMO> eventMOs = new ArrayList<>();
        private List<EventMO> invitationMOs = new ArrayList<>();
        private EventDelegates eventDelegates = new EventDelegates();
        private Gson gson = new Gson();
        private ProgressDialog prgDialog;
        private ChatDisplayAdapter chatDisplayAdapter;
        private ListView groupEventView;
        private SharedPreferences sharedpreferences;
        private TextView eventList;
        private MessageMO messageMO = new MessageMO();
        private ArrayAdapter<EventMO> dataAdapter = null;
        private UserMO userMO;
        private View view;



        @Override
        public void onPrepareOptionsMenu(Menu menu) {
            menu.findItem(R.id.dropdown).setVisible(true);
            super.onPrepareOptionsMenu(menu);

        }

        public boolean onOptionsItemSelected(MenuItem item) {
            Log.d("onOptionsItemSelected", "yes");

            switch (item.getItemId()) {
                case R.id.all:
                    displayEventInvitationList(inflater, container, savedInstanceState);
                    return true;
                case R.id.event:
                    displayEventList(inflater, container, savedInstanceState);
                    return true;
                case R.id.invitation:
                    displayInvitationList(inflater, container, savedInstanceState);
                    return true;
                default:
                    return super.onOptionsItemSelected(item);

            }

        }

        public View displayEventList(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            view = inflater.inflate(R.layout.chatwindow_tab, container, false);
            context = getActivity().getApplicationContext();
            sharedpreferences = context.getSharedPreferences(Constants.SHARED_PREFERENCE_NAME,
                    Context.MODE_PRIVATE);
            DatabaseHelper dbHelper = new DatabaseHelper(context);
            userMO = dbHelper.getUserData(1);
            new AsyncTask<Void, Void, List<EventMO>>() {
                @Override
                protected List<EventMO> doInBackground(Void... arg0) {
                    eventMOs = gson.fromJson(eventDelegates.getAllEvents(userMO, context), new TypeToken<List<EventMO>>() {
                    }.getType());
                    List<EventMO> groupEventList = new ArrayList<>();
                    for (EventMO eventMO : eventMOs) {
                        groupEventList.add(eventMO);

                    }
                    return groupEventList;
                }

                @Override
                protected void onPostExecute(List<EventMO> groupEventList) {
                    groupEventMoList = groupEventList;
                    chatDisplayAdapter = new ChatDisplayAdapter();
                    groupEventView.setAdapter(chatDisplayAdapter);
                    groupEventView.setItemsCanFocus(true);
                    groupEventView.setTextFilterEnabled(true);
                    groupEventView.setOnItemClickListener(groupEventView.getOnItemClickListener());
                }

            }.execute(null, null, null);
            return view;
        }

        public View displayInvitationList(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            view = inflater.inflate(R.layout.chatwindow_tab, container, false);
            context = getActivity().getApplicationContext();
            sharedpreferences = context.getSharedPreferences(Constants.SHARED_PREFERENCE_NAME,
                    Context.MODE_PRIVATE);
            DatabaseHelper dbHelper = new DatabaseHelper(context);
            userMO = dbHelper.getUserData(1);
            new AsyncTask<Void, Void, List<EventMO>>() {
                @Override
                protected List<EventMO> doInBackground(Void... arg0) {
                    invitationMOs = gson.fromJson(eventDelegates.getAllInvites(userMO, context), new TypeToken<List<EventMO>>() {
                    }.getType());
                    List<EventMO> groupInvitationList = new ArrayList<>();
                    for (EventMO eventMO : invitationMOs) {
                        groupInvitationList.add(eventMO);

                    }

                    return groupInvitationList;
                }

                @Override
                protected void onPostExecute(List<EventMO> groupInvitationList) {
                    groupEventMoList = groupInvitationList;
                    chatDisplayAdapter = new ChatDisplayAdapter();
                    groupEventView.setAdapter(chatDisplayAdapter);
                    groupEventView.setItemsCanFocus(true);
                    groupEventView.setTextFilterEnabled(true);
                    groupEventView.setOnItemClickListener(groupEventView.getOnItemClickListener());
                }
            }.execute(null, null, null);
            return view;
        }

        public View displayEventInvitationList(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            view = inflater.inflate(R.layout.chatwindow_tab, container, false);
            context = getActivity().getApplicationContext();
            sharedpreferences = context.getSharedPreferences(Constants.SHARED_PREFERENCE_NAME,
                    Context.MODE_PRIVATE);
            DatabaseHelper dbHelper = new DatabaseHelper(context);
            userMO = dbHelper.getUserData(1);
            new AsyncTask<Void, Void, List<EventMO>>() {
                @Override
                protected List<EventMO> doInBackground(Void... arg0) {
                    eventMOs = gson.fromJson(eventDelegates.getAllEvents(userMO, context), new TypeToken<List<EventMO>>() {
                    }.getType());
                    invitationMOs = gson.fromJson(eventDelegates.getAllInvites(userMO, context), new TypeToken<List<EventMO>>() {
                    }.getType());
                    List<EventMO> groupEventInvitesList = new ArrayList<>();

                    for (EventMO eventMO : eventMOs) {
                        groupEventInvitesList.add(eventMO);

                    }
                    for (EventMO eventMO : invitationMOs) {
                        groupEventInvitesList.add(eventMO);

                    }

                    return groupEventInvitesList;

                }

                @Override
                protected void onPostExecute(List<EventMO> groupEventInvitesList) {
                    groupEventMoList = groupEventInvitesList;
                    chatDisplayAdapter = new ChatDisplayAdapter();
                    groupEventView.setAdapter(chatDisplayAdapter);
                    groupEventView.setItemsCanFocus(true);
                    groupEventView.setTextFilterEnabled(true);
                    groupEventView.setOnItemClickListener(groupEventView.getOnItemClickListener());
                }
            }.execute(null, null, null);
            return view;
        }

        @Override

        public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle
                savedInstanceState) {
            //Here this.inflater,this.container,this.savedInstanceState variables are stored and that
            // are used in onOptionsItemSelected cases
            //without declaring this user get "cannot resolve symbol(inflater,container,savedinstancestate) error"
            // in onoptionitemselected method calls
            this.inflater = inflater;
            this.container = container;
            this.savedInstanceState = savedInstanceState;
            super.onCreate(savedInstanceState);
            setHasOptionsMenu(true);
            view = inflater.inflate(R.layout.chatwindow_tab, container, false);
            context = getActivity().getApplicationContext();
            sharedpreferences = context.getSharedPreferences(Constants.SHARED_PREFERENCE_NAME,
                    Context.MODE_PRIVATE);
            final DatabaseHelper dbHelper = new DatabaseHelper(context);
            userMO = dbHelper.getUserData(1);
            prgDialog = new ProgressDialog(getActivity());
            prgDialog.setMessage("Please wait...");
            // Set Cancelable as False
            prgDialog.setCancelable(false);
            prgDialog.show();

            //inviation group for user
            new AsyncTask<Void, Void, List<EventMO>>() {
                @Override
                protected List<EventMO> doInBackground(Void... arg0) {

                    eventMOs = gson.fromJson(eventDelegates.getAllEvents(userMO, context), new TypeToken<List<EventMO>>() {
                    }.getType());
                    invitationMOs = gson.fromJson(eventDelegates.getAllInvites(userMO, context), new TypeToken<List<EventMO>>() {
                    }.getType());
                    List<EventMO> groupEventMOList = new ArrayList<>();

                    for (EventMO eventMO : eventMOs) {
                        long eventId = eventMO.getEventId();
                        List<ChatMO> chatMOs1 = dbHelper.getGroupChatMessageForIsview(eventId);
                        Log.e("groupchat","eventMos1"+chatMOs1);
                        int count = 0;
                        for(ChatMO chatMO : chatMOs1){
                            count++;
                            Log.e("groupchatFragment","count"+count);
                            eventMO.setCount(count);
                            Log.e("groupchatFragment","eventMO"+eventMO.getCount());


                        }
                        Log.e("ouiside 2nd loop","event mo evnet id"+eventMO);
                        groupEventMOList.add(eventMO);


                    }
                    for (EventMO eventMO : invitationMOs) {
                        List<ChatMO> chatMOs1 = dbHelper.getGroupChatMessageForIsview(eventMO.getEventId());
                        Log.e("groupchat","eventMos1"+chatMOs1);
                        int count = 0;
                        for(ChatMO chatMO : chatMOs1){
                            count++;
                            Log.e("groupchatFragmentinvite","count"+count);
                            eventMO.setCount(count);
                            Log.e("groupchatFragmentinvite","eventMO"+eventMO.getCount());


                        }
                        Log.e("ouiside 2nd loop","invitation event mo mo evnet id"+eventMO);
                        groupEventMOList.add(eventMO);


                    }

                    return groupEventMOList;

                }

                @Override

                protected void onPostExecute(List<EventMO> groupEventMOList) {
                    groupEventMoList = groupEventMOList;
                    Log.i("inside on post","group event list"+groupEventMoList);
                    prgDialog.dismiss();
                    DatabaseHelper dbHelper = new DatabaseHelper(context);
                    groupEventView = (ListView) view.findViewById(R.id.chat_list_view);
                    chatDisplayAdapter = new ChatDisplayAdapter();
                    groupEventView.setAdapter(chatDisplayAdapter);
                    groupEventView.setItemsCanFocus(true);
                    groupEventView.setTextFilterEnabled(true);
                    groupEventView.setOnItemClickListener(groupEventView.getOnItemClickListener());
                }
            }.execute(null, null, null);
            return view;
        }

        private class ChatDisplayAdapter extends BaseAdapter {

            private LayoutInflater mInflater;

            public ChatDisplayAdapter() {
                mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            }

            @Override
            public int getCount() {
                return groupEventMoList.size();
            }

            @Override
            public Object getItem(int position) {
                return groupEventMoList.get(position);
            }

            @Override
            public long getItemId(int id) {
                // for sqllite management
                return 0;
            }

            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                if (convertView == null) {
                    convertView = mInflater.inflate(R.layout.chatwindow, null);
                    convertView.setClickable(true);
                    convertView.setFocusable(true);
                    chatTitle = (TextView) convertView.findViewById(R.id.chat_title);
                    chatPlace = (TextView) convertView.findViewById(R.id.event_place);
                    chatDate = (TextView) convertView.findViewById(R.id.event_date);
                    notificationCount = (TextView) convertView.findViewById(R.id.notification_count);
                    chatPlace.setTextColor(getResources().getColor(R.color.black));
                    chatDate.setTextColor(getResources().getColor(R.color.black));
                    chatTitle.setTextColor(getResources().getColor(R.color.black));
                    chatPlace.setText(groupEventMoList.get(position).getPlace());
                    Log.e("view","position"+groupEventMoList.get(position).getPlace());
                    String actualDate = groupEventMoList.get(position).getEventDate();
                    notificationCount.setTextColor(getResources().getColor(R.color.black));

                    Log.e("view","position"+position);
                    Log.e("view","notification"+groupEventMoList.get(position).getCount());
                  notificationCount.setText(Integer.toString(groupEventMoList.get(position).getCount()));
                    Log.e("view","after notification position"+position);

                    try {
                        //date format changed here
                        Date formatDate = new SimpleDateFormat("yyyy-MM-dd").parse(actualDate);
                        dateResult = new SimpleDateFormat("dd-MM-yyyy").format(formatDate);
                    } catch (ParseException e) {

                        e.printStackTrace();
                    }
                    chatDate.setText(dateResult);
                    chatTitle.setText(groupEventMoList.get(position).getText());
                    final EventMO eventMO = groupEventMoList.get(position);
                    convertView.setTag(position);
                    View v = convertView.findViewById(R.id.chat_window_single);
                    v.getRootView().setOnClickListener(new View.OnClickListener() {
                        @Override
                        public void onClick(View v) {
                            Log.i("position", v.getTag().toString());
                            Intent groupAct = new Intent(context, GroupChatActivity.class);
                            groupAct.putExtra("eventMo", eventMO);
                            groupAct.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                            startActivity(groupAct);

                        }

                    });
                }
                return convertView;
            }

        }

    }
公共类GroupChatFragment扩展了片段{
充气机;
视图组容器;
束保存状态;
私人语境;
私有文本视图聊天标题;
私人文本视图聊天室;
私有文本视图聊天日期;
私有文本视图通知计数;
私有字符串日期结果;
private List groupEventMoList=新建ArrayList();
private List eventMOs=new ArrayList();
private List invitationMOs=new ArrayList();
private EventDelegates EventDelegates=新EventDelegates();
private Gson Gson=new Gson();
私有进程对话框;
私有ChatDisplayAdapter ChatDisplayAdapter;
私有ListView groupEventView;
私人共享引用共享引用;
私有文本视图事件列表;
private MessageMO MessageMO=new MessageMO();
专用ArrayAdapter dataAdapter=null;
私有UserMO-UserMO;
私人视野;
@凌驾
在PrepareOptions功能表(菜单)上公共作废{
menu.findItem(R.id.dropdown).setVisible(true);
super.onPrepareOptions菜单(菜单);
}
公共布尔值onOptionsItemSelected(菜单项项){
Log.d(“onoptionItemSelected”、“yes”);
开关(item.getItemId()){
案例R.id.all:
显示事件邀请列表(充气机、容器、保存状态);
返回true;
案例R.id.事件:
显示事件列表(充气机、容器、保存状态);
返回true;
案例R.id.邀请:
显示邀请列表(充气机、容器、保存状态);
返回true;
违约:
返回super.onOptionsItemSelected(项目);
}
}
公共视图显示事件列表(LayoutFlater充气机、ViewGroup容器、Bundle savedInstanceState){
super.onCreate(savedInstanceState);
视图=充气机。充气(R.layout.chatwindow_选项卡,容器,错误);
context=getActivity().getApplicationContext();
SharedReferences=context.getSharedReferences(Constants.SHARED\u PREFERENCE\u NAME,
上下文。模式(私人);
DatabaseHelper dbHelper=新的DatabaseHelper(上下文);
userMO=dbHelper.getUserData(1);
新建异步任务(){
@凌驾
受保护列表doInBackground(无效…arg0){
eventMOs=gson.fromJson(eventDelegates.getAllEvents(userMO,context),new-TypeToken(){
}.getType());
List groupEventList=新建ArrayList();
对于(EventMO EventMO:eventMOs){
groupEventList.add(eventMO);
}
返回groupEventList;
}
@凌驾
受保护的void onPostExecute(列表groupEventList){
groupEventMoList=groupEventList;
chatDisplayAdapter=新的chatDisplayAdapter();
setAdapter(chatDisplayAdapter);
groupEventView.setItemsCanFocus(true);
groupEventView.setTextFilterEnabled(true);
groupEventView.setOnItemClickListener(groupEventView.getOnItemClickListener());
}
}.执行(空,空,空);
返回视图;
}
公共视图显示邀请列表(布局充气机、视图组容器、捆绑包保存状态){
super.onCreate(savedInstanceState);
视图=充气机。充气(R.layout.chatwindow_选项卡,容器,错误);
context=getActivity().getApplicationContext();
SharedReferences=context.getSharedReferences(Constants.SHARED\u PREFERENCE\u NAME,
上下文。模式(私人);
DatabaseHelper dbHelper=新的DatabaseHelper(上下文);
userMO=dbHelper.getUserData(1);
新建异步任务(){
@凌驾
受保护列表doInBackground(无效…arg0){
invitationMOs=gson.fromJson(eventDelegates.getAllInvites(userMO,context),new-TypeToken(){
}.getType());
List groupInvitationList=新建ArrayList();
for(EventMO EventMO:invitationMOs){
groupInvitationList.add(eventMO);
}
返回团体邀请列表;
}
@凌驾
受保护的void onPostExecute(列表组邀请列表){
groupEventMoList=组邀请列表;
chatDisplayAdapter=新的chatDisplayAdapter();
setAdapter(chatDisplayAdapter);
groupEventView.setItemsCanFocus(true);
groupEventView.setTextFilterEnabled(true);
groupEventView.setOnItemClickListener(groupEventView.getOnItemClickListener());
}
}.执行(空,空,空);
返回视图;
}
公共视图显示事件邀请列表(布局充气机、视图组容器、捆绑包保存状态){
super.onCreate(savedInstanceState);
视图=充气机。充气(R.layout.chatwindow_选项卡,容器,错误);
context=getActivity().getApplicationContext();
嘘