2013-08-26 8 views
6

ListViewでクリックした項目を削除します。ここでListViewのArrayAdapter <String>の項目を削除します

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

は私のコードです:

java.lang.UnsupportedOperationException

パブリッククラスMyDialogFragmentはDialogFragment {

@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(); 
} 

しかしadapter.remove()このエラーでアプリケーションのクラッシュを作るを拡張しますアイテムを削除したい場合はどうすればよいですか?事前に

感謝:)

+1

多分http://stackoverflow.com/a/3476744/1977828ができますか? –

+0

あなたの完全な行動規範を投稿してください。 –

+0

アレイからアイテムを削除してみてください。 – Saurabh

答えて

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

私は何をしたのか正確にはわかりませんが、私はarraylistを使う必要があります。どうも – nsvir

5

この方法をDO

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

私は何をしていますか? – nsvir

関連する問題