android: Daten aktualisieren im listview nach dem löschen aus der Datenbank

Ich habe eine Anwendung, die ruft die Daten aus der DB und zeigt Sie in einer Liste anzeigen. Ich habe eine benutzerdefinierte adapter für die gleichen. Also, wenn ich drücken Sie die Schaltfläche "löschen", eine Taste zum löschen für jede Zeile in der Liste angezeigt wird. Wenn ich drücke, dass die bestimmte Zeile gelöscht wird, in der DB und den gleichen Ausdruck in der listview auch. Das problem ist, es ist nicht wegen dieser änderung, ich soll die app schließen und erneut öffnen oder verschieben in eine andere Tätigkeit und zurück, um zu sehen, die aktualisierten Ergebnisse.

Also meine Frage ist: wo kann ich anrufen, der notifyDataSetChanged() Methode, um es sofort aktualisiert?

Hier ist mein customadapter anzeigen:

public View getView(int position,  View convertView, ViewGroup parent) {
    //TODO Auto-generated method stub
    MenuListItems menuListItems = menuList.get(position);


      if (convertView == null) {
           LayoutInflater inflater = (LayoutInflater) c
             .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
           convertView = inflater.inflate(R.layout.customlist, parent, false);

          }

      Button ck = (Button) convertView.findViewById(R.id.delbox);
      if(i){

          ck.setVisibility(View.VISIBLE);}
          else{               
              ck.setVisibility(View.GONE);        

      }


        ck.setTag(menuListItems.getSlno());
        ck.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                //TODO Auto-generated method stub
                final Integer Index = Integer.parseInt((String) v.getTag());
                final DataHandler enter = new DataHandler(c);
                DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        switch (which){
                        case DialogInterface.BUTTON_POSITIVE:
                            //Yes button clicked
                            enter.open();
                            enter.delet(Index);
                            enter.close();
                            notifyDataSetChanged();
                            dialog.dismiss();

                            break;

                        case DialogInterface.BUTTON_NEGATIVE:
                            //No button clicked
                            dialog.dismiss();
                            break;
                        }
                    }
                };

                AlertDialog.Builder builder = new AlertDialog.Builder(c);
                builder.setMessage("Are you sure you want to Delete?").setPositiveButton("Yes", dialogClickListener)
                    .setNegativeButton("No", dialogClickListener).show();

            }
        });


            TextView id = (TextView) convertView.findViewById(R.id.tvhide);
            id.setText(menuListItems.getSlno());

          TextView title = (TextView) convertView.findViewById(R.id.tvtitle);
          title.setText(menuListItems.getTitle());
          TextView phone = (TextView) convertView.findViewById(R.id.tvpnumber);
          phone.setText(menuListItems.getPhone());
         //ck.setChecked(menuList.)
          notifyDataSetChanged();
          return convertView;
}

InformationsquelleAutor Pavan Kumar | 2014-12-24

Schreibe einen Kommentar