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();
嘘