2016-04-12 4 views
0

Ich muss Elemente aus ListView In Android löschen und notify seine Änderungen.Ich habe eine Lösung von StackOverflow, aber konnte es nicht funktionieren.Ich habe eine Abfrage in Bezug auf das Löschen von Elementen aus ListView und Benachrichtigen Änderungen in Android

Dieser Teil des Codes zeigt, wie ich Listenansicht und Call-Funktion von DAO-Klasse initialisiert habe.

listvcard=(ListView) rootView.findViewById(R.id.listofvcard); 

     DAO dao = new DAO(getActivity()); 

     vcardadapter adapter = new vcardadapter(getActivity(), dao.getUser()); 

     listvcard.setAdapter(adapter); 

     return rootView; 
    } 

    private class vcardadapter extends BaseAdapter { 

     private Context context; 
     private List<VcardVO> listvcardVO; 


     private LayoutInflater inflater; 

     public vcardadapter(Context c, List<VcardVO> list) { 
      // TODO Auto-generated constructor stub 
      this.context = c; 
      this.listvcardVO = list; 
      inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     } 

=========================================== =============================

Dieser Teil des Codes zeigt, wie ich Artikel aus listView mit löschen ALertlayout.

h.delete.setOnClickListener(new OnClickListener() { 

       @Override 
       public void onClick(View v) { 
        // TODO Auto-generated method stub 
        deletepopup(); 
       } 
       private void deletepopup() { 
        // TODO Auto-generated method stub 
        AlertDialog.Builder alert = new AlertDialog.Builder(getActivity()); 
        alert.setTitle("Delete this vCard?"); 

        alert.setCancelable(false); 
        //alert.setIcon(R.drawable.vcardicon2); 
        alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() { 

         @Override 
         public void onClick(DialogInterface dialog, int which) { 
          // TODO Auto-generated method stub 

         } 
        }); 
        alert.setPositiveButton("Delete", new DialogInterface.OnClickListener() { 

         @Override 
         public void onClick(DialogInterface dialog, int which) { 
          // TODO Auto-generated method stub 


          ArrayAdapter<String> myAdapter = (ArrayAdapter<String>)listvcard.getAdapter(); 
          myAdapter.remove(myAdapter.getItem(position)); 
          myAdapter.notifyDataSetChanged(); 



         } 
        }); 
        AlertDialog dialog = alert.create(); 
        dialog.show(); 
       } 
      }); 

Ich erhalte Fehler in Zeile "ArrayAdapter<String> myAdapter = (ArrayAdapter<String>)listvcard.getAdapter();"

Er sagt: "vcardadapter nicht gegossen werden kann, um arrayadapter"

Bitte antworten !! Ich versuche dieses Problem von 3 Tagen zu lösen.

Antwort

0

dies versuchen,

eine Methode Fügen Sie das Element von Listview in Adapter unten zu entfernen:

public removeItem(int position){ 
     listvcardVO.remove(position); 
     notifyDataSetChanged(); 
} 

Und die Methode von Delete-Knopf klicken, Aufruf:

adapter.removeItem(postion); 
+0

"Adapter" dass ich oben deklariert habe, ist in onClickListener des Löschenbuttons nicht zugänglich. Ich habe Methode "removeItem" erstellt –

+0

deklarieren global –

+0

Wie kann ich es global.Wenn ich öffentlich erklären werde, wird es "Fehler" angezeigt. –

Verwandte Themen