2013-08-26 21 views
6

ListView'de tıklanan bir öğeyi silmek istiyorum. İşte Öğe öğesini ArrayAdapter içinde kaldırın <String> ListView içinde

The solution is to use an ArrayList instead of a String[];

benim kodudur:

java.lang.UnsupportedOperationException

:

public class MyDialogFragment DialogFragment genişletir {

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 

    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    builder.setTitle("Critères Supplémentaires"); 
    builder.setNegativeButton("Cancel", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int whichButton) { 
        onCancel(dialog); 
       } 
      } 
    ); 

    LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
    View mView = inflater.inflate(R.layout.fragment_dialog, null); 
    ListView mListView = (ListView) mView.findViewById(R.id.lvListe); 

    String[] mValues = {"Orientation", "Nombre de Chambres", "Nombre de Salle de bains", "Nombre de toilettes", "Cave", "Parking", "Garage", "Jardin"}; 

    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, mValues); 
    mListView.setAdapter(adapter); 
    mListView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      String item = (String) parent.getItemAtPosition(position); 
      adapter.remove(adapter.getItem(position)); 
      adapter.notifyDataSetChanged(); 
      Toast.makeText(getActivity(), "You selected : " + item, Toast.LENGTH_SHORT).show(); 
     } 
    }); 
    builder.setView(mListView); 

    return builder.create(); 
} 

Ama adapter.remove() bu hata ile uygulama kazasında yapar Bir öğeyi kaldırmak istersem ne yapmalıyım?

+1

belki http://stackoverflow.com/a/3476744/1977828 yardımcı bu şekilde DO? –

+0

Lütfen tüm etkinlik kodunuzu gönderin. –

+0

Diziden öğeyi silmeyi deneyin. – Saurabh

cevap

13
 String[] mValues = {"Orientation", "Nombre de Chambres", "Nombre de Salle de bains", "Nombre de toilettes", "Cave", "Parking", "Garage", "Jardin"}; 

     final ArrayList<String> list =new ArrayList<String>(Arrays.asList(mValues)); 
     final ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, list); 
     mListView.setAdapter(adapter); 
     mListView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       String item = list.get(position); 
       list.remove(position); 
       adapter.notifyDataSetChanged(); 
       Toast.makeText(getActivity(), "You selected : " + item, Toast.LENGTH_SHORT).show(); 
      } 
     }); 
+0

Tam olarak ne yaptığımı değil, evet arraylist kullanmalıyım. Teşekkürler – nsvir

5

:) önceden

Teşekkür

mListView.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       String item = (String) adapter.getItem(position); 
       adapter.remove(adapter.getItem(position)); 
       adapter.notifyDataSetChanged(); 
       Toast.makeText(getActivity(), "You selected : " + item, Toast.LENGTH_SHORT).show(); 
      } 
     }); 
+0

Zaten ne yapıyorum değil mi? – nsvir

İlgili konular