2017-10-04 11 views
0

私は以下の方法でリスト内の複数のアイテムを選択し、それらを削除します。私は選択したアイテムのアイコンイメージを変更したいと思いますが、何時に私はこれを行うことができませんでした、誰でも私を助けることができますか?選択したListViewアイテムの画像を変更する

listview.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE_MODAL); 
listview.setMultiChoiceModeListener(new MultiChoiceModeListener() { 

     @Override 
     public void onItemCheckedStateChanged(ActionMode actionMode, int position, long id, boolean checked) { 
      final int checkedCount = listview.getCheckedItemCount(); 
      actionMode.setTitle(checkedCount + getString(R.string.selected_item_list)); 
      adapter.toggleSelection(position); 
     } 

     @Override 
     public boolean onActionItemClicked(ActionMode actionMode, MenuItem menuItem) { 
      switch (menuItem.getItemId()) { 
       case R.id.delete: 
        SparseBooleanArray selected = adapter.getSelectedIds(); 
        for (int i = (selected.size() - 1); i < 0; i--) { 
         if (selected.valueAt(i)) { 
          Object object = adapter 
            .getItem(selected.keyAt(i)); 
          adapter.remove(delivery); 
         } 
        } 
        actionMode.finish(); 
        return true; 
       default: 
        return false; 
      } 
     } 

     @Override 
     public boolean onCreateActionMode(ActionMode actionMode, Menu menu) { 
      MenuInflater inflater = actionMode.getMenuInflater(); 
      inflater.inflate(R.menu.menu_home_delete, menu); 
      return true; 
     } 

     @Override 
     public void onDestroyActionMode(ActionMode actionMode) { 
      adapter.removeSelection(); 
     } 

     @Override 
     public boolean onPrepareActionMode(ActionMode actionMode, Menu menu) { 
      return false; 
     } 
    }); 

答えて

0

アダプターのデータオブジェクトにブール値を追加します。 ArrayAdapterがあるとします。 MyDataObjectに「選択された」フィールドを追加し、その行を「選択」するときにそれを切り替えます。

アダプターのgetViewをオーバーライドします(カスタムアダプターが必要ですが、私は単にArrayAdapterを拡張します)。行をレンダリングするときに、「選択された」フィールドが真であれば、「その他の」イメージを表示します。

ボタンをクリックすると、アダプタで 'notifyDataSetChanged'を呼び出します。表示された行が自分自身をリフレッシュするようにします(そして、それぞれについてgetViewを呼び出します)。

ボタンをクリックしたときに画像が変更されるようにするには、何らかのグローバルブール値を持たなければならないため、ボタンがクリックされるまで画像が表示されません。

関連する問題