¿Cómo actualizar listview cuando vuelve a presionar desde otra actividad Android?

Hola cómo actualizar listView cuando se pulsa de nuevo en otra actividad. Estoy utilizando la base de datos, donde estoy borrando la fila particular en una Activity , si la parte posterior presionó solamente, no está poniendo al día. Cuando cambio a otra actividad o aplicación cerrada y abierta, funciona bien donde se actualiza listView .

Aquí está el código ..

 public class FragmentLiveChats extends Fragment { private AdapterLiveChat adapterChatHistory; private List<LiveChatDetails> customerDetail; private ListView mListView; private List<LiveChatDetails> list; @Override public void onViewCreated(View view, Bundle savedInstanceState) { list =AAEDatabaseHelper.getLiveChatDetails(Constants.TABLE_LIVE_CHAT); mListView = (ListView) rootView.findViewById(R.id.list_chat_history); parseResponse(); } private void parseResponse(){ for(int i=0;i<list.size();i++){ LiveChatDetails chatDetailsList = new LiveChatDetails(); chatDetailsList.setId(list.get(i).getId()); chatDetailsList.setFromUsername(list.get(i).getFromUsername()); chatDetailsList.setChatTime(list.get(i).getChatTime()); chatDetailsList.setLatMsg(list.get(i).getLatMsg()); customerDetail.add(chatDetailsList); } setValuesInAdapter(); } @Override public void onResume() { // TODO Auto-generated method stub super.onResume(); adapterChatHistory.updateList(customerDetail); adapterChatHistory.notifyDataSetChanged(); } private void setValuesInAdapter() { if (adapterChatHistory == null) { adapterChatHistory = new AdapterLiveChat(context); } adapterChatHistory.setExpertData(customerDetail); if (customerDetail != null && !customerDetail.isEmpty()) { mListView.setVisibility(View.VISIBLE); viewNoData.setVisibility(View.GONE); mListView.setAdapter(adapterChatHistory); } else { mListView.setVisibility(View.GONE); viewNoData.setVisibility(View.VISIBLE); } adapterChatHistory.notifyDataSetChanged(); mListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { LiveChatDetails chatDetails = (LiveChatDetails) parent.getAdapter() .getItem(position); Log.e("chatDetails", "chat details"+chatDetails.getId()); Intent intent = new Intent(context,ActivityExpertChatView.class); intent.putExtra(Constants.CHAT_USER_NAME, chatDetails.getId()); startActivity(intent); } }); } 

En el adaptador:

 public void setExpertData(List<LiveChatDetails> mTempData) { this.mTempData = mTempData; } 

En la actividad de ExpertChatView , estoy borrando un registro y si llego a esta pantalla, es decir, actividad anterior por retroceso, sigue siendo la misma lista y no se está actualizando. Pero cuando cierro la aplicación y abrir, está funcionando bien.

En la actividad expertChatView, estoy borrando el registro de nombre de usuario.

 AAEDatabaseHelper.deleteUsername(<username>); 

Intenté usar el método notifyDatasetChanged en onResume() pero todavía el mismo problema.

EDITAR

  Adapter class public class AdapterLiveChat extends BaseAdapter { private Context context; private List<LiveChatDetails> mTempData; private LayoutInflater mInflater; private LiveChatDetails liveChatDetails; private View adView; private ViewHolder holder; private String userImageUrl; public AdapterLiveChat(Context context) { this.context = context; imgLoader = Picasso.with(context); mCalendar = Calendar.getInstance(); } public void setExpertData(List<LiveChatDetails> mTempData) { this.mTempData = mTempData; } public void updateList(List<LiveChatDetails> mChatDetails) { this.mTempData = mChatDetails; } @Override public int getCount() { return mTempData.size(); } @Override public LiveChatDetails getItem(int position) { return mTempData.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { mInflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); liveChatDetails = getItem(position); adView = convertView; if (adView == null) { holder = new ViewHolder(); adView = mInflater.inflate(R.layout.row_live_chats, null); holder.txtName = (CustomTextView) adView .findViewById(R.id.txt_name); adView.setTag(holder); } else holder = (ViewHolder) adView.getTag(); holder.txtName.setText(liveChatDetails.getFromUsername()); return adView; } 

// Ver clase de titular aquí …

Primero escriba el siguiente método en Adapter

  public void updateList(List<Messages> mChatDetails) { this.mChatDetails.clear(); this.mChatDetails.addAll(mChatDetails) } 

En la búsqueda del curriculum vitae los datos de la base de datos y el método updateList de la llamada (lista mChatDetails) entonces llama notifyDatasetChanged ()

  @Override public void onResume() { // fetch updated data adapter.updateList(mChatDetails); adapter.notifyDataSetChanged(); } 

Elimine ese elemento de la lista customerDetail y luego llame a notifydatasetchanged()

  • ¿Cuál es el propósito de item-id en Android ListView Adapter?
  • adaptador personalizado de la galería de Android
  • Fragmento de acceso del adaptador
  • Cuando getView () en ArrayAdapter se llama
  • Actualizar los contenidos de recyclerview fallan en la hoja inferior
  • RecyclerView: IndexOutOfBoundsException Inconsistencia detectada. Posición de artículo no válida
  • ViewPager Adapter getItem siempre llamado para el índice 0 y 1
  • Listview con un adaptador personalizado que contiene CheckBoxes
  • Cómo obtener los elementos de la lista seleccionada de un Listview con checkBox y Adaptador personalizado?
  • El mejor lugar para añadirHeaderView en ListFragment
  • Animar elementos recién agregados en ListView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.