title: Saving the contents of the ListView after drag and drop
body: <p>Initially I am having a simple ListView Activity that consists of few formulae and also a Button at the top.Whenever I click that Button it takes me to another Activity,where in I am dragging and dropping the contents of the ListView.This Activity also consists a Button and whenever I click this Button the order of the contents which I have changed in my drag and drop Activity has to be saved in my initial Activity.How do I save the contents of ListView which I have changed in my drag and drop to my initial Activity?</p>
  
  <p>Code:My Initial Activity and my next Activity is drag and drop. </p>
  
  <pre><code>   public class FormulaActivity extends Activity implements OnClickListener {
  
  private ListView listview;
  private ArrayList&lt;ListContents&gt; mListItem;
  
  /** Called when the activity is first created. */
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main1);
      ImageButton btn=(ImageButton)findViewById(R.id.imageButton00);
      btn.setOnClickListener(new OnClickListener() {
  
          @Override
          public void onClick(View v) {
              // TODO Auto-generated method stub
              Intent i=new Intent(FormulaActivity.this,DragNDropListActivity.class);
              startActivity(i);
  
  
          }
      });
      listview = (ListView) findViewById(R.id.list_view);
      mListItem = ListContents.getItems();
      listview.setAdapter(new ListAdapter(FormulaActivity.this, R.id.list_view,
              mListItem));
  
  }
  
  @Override
  public void onClick(View v) {
  
  }
  
  // ***ListAdapter***
  private class ListAdapter extends ArrayAdapter&lt;ListContents&gt; { 
      private ArrayList&lt;ListContents&gt; mList; 
      public ListAdapter(Context context, int textViewResourceId,
              ArrayList&lt;ListContents&gt; list) { 
          super(context, textViewResourceId, list);
          this.mList = list;
  
      }
  
      public View getView(int position, View convertView, ViewGroup parent) {
          View view = convertView;
          try {
              if (view == null) {
                  LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                  view = vi.inflate(R.layout.list, null); 
              }
              final ListContents listItem = mList.get(position); 
              if (listItem != null) {
                  // setting list_item views
                  ((TextView) view.findViewById(R.id.tv_name))
                          .setText(listItem.getName());
                  view.setOnClickListener(new OnClickListener() {
  
  
          public void onClick(View arg0) { // --clickOnListItem
                          Intent myIntent = new Intent(FormulaActivity.this,
                                  Activity2.class);
                          myIntent.putExtra("NAME", listItem.getName());
                          startActivity(myIntent);
                          //finish();
                      }
                  });
              }
          } catch (Exception e) {
              Log.i(FormulaActivity.ListAdapter.class.toString(), e.getMessage());
          }
          return view;
      }
  }
  </code></pre>
  
  <p>}</p>
  
  <hr>
  
  <pre><code>public class DragNDropListActivity extends ListActivity {
  
  @Override
  public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
  
      setContentView(R.layout.dragndroplistview);
      Button mbtn=(Button)findViewById(R.id.button12);
      mbtn.setOnClickListener(new OnClickListener() {
  
          @Override
          public void onClick(View v) {
              // TODO Auto-generated method stub
          Intent i=new Intent(DragNDropListActivity.this,FormulaActivity.class);
          startActivity(i);
          finish();
          }
      });
      ArrayList&lt;String&gt; content = new ArrayList&lt;String&gt;(mListContent.length);
      for (int i=0; i &lt; mListContent.length; i++) {
          content.add(mListContent[i]);
      }
  
      setListAdapter(new DragNDropAdapter(this, new int[]{R.layout.dragitem}, new int[]{R.id.TextView01}, content));//new DragNDropAdapter(this,content)
      ListView listView = getListView();
  
      if (listView instanceof DragNDropListView) {
          ((DragNDropListView) listView).setDropListener(mDropListener);
          ((DragNDropListView) listView).setRemoveListener(mRemoveListener);
          ((DragNDropListView) listView).setDragListener(mDragListener);
      }
  }
  
  private DropListener mDropListener = 
      new DropListener() {
      public void onDrop(int from, int to) {
          ListAdapter adapter = getListAdapter();
          if (adapter instanceof DragNDropAdapter) {
              ((DragNDropAdapter)adapter).onDrop(from, to);
              getListView().invalidateViews();
          }
      }
  };
  
  private RemoveListener mRemoveListener =
      new RemoveListener() {
      public void onRemove(int which) {
          ListAdapter adapter = getListAdapter();
          if (adapter instanceof DragNDropAdapter) {
              ((DragNDropAdapter)adapter).onRemove(which);
              getListView().invalidateViews();
          }
      }
  };
  
  private DragListener mDragListener =
      new DragListener() {
  
      int backgroundColor = 0xe0103000;
  
          public void onDrag(int x, int y, ListView listView) {
              // TODO Auto-generated method stub
          }
  
          public void onStartDrag(View itemView) {
              itemView.setVisibility(View.INVISIBLE);
              itemView.setBackgroundColor(backgroundColor);
              ImageView iv = (ImageView)itemView.findViewById(R.id.ImageView01);
              if (iv != null) iv.setVisibility(View.VISIBLE);
          }
  
          public void onStopDrag(View itemView) {
              itemView.setVisibility(View.VISIBLE);
              itemView.setBackgroundColor(backgroundColor);
              ImageView iv = (ImageView)itemView.findViewById(R.id.ImageView01);
              if (iv != null) iv.setVisibility(View.VISIBLE);
          }
  
  };
  
  private static String[] mListContent={"BMI", "Infuusberekening: druppels per minuut", "Infuusberekening: resterende tijd","Injecteren: IE-aanduiding", "Injecteren: mg/ml-aanduiding", "Injecteren: %-aanduiding", 
                                      "Lichaamsoppervlakte", "Medicatieberekening voor gewicht",
                                      "Oplossen: Hoeveelheid percentage",
                                      "Oplossen: Hoeveelheid promillage",
                                      "Oplossen: Percentage in oplossing",
                                      "Oplossen: Promillage in oplossing",
                                      "PCA-pomp",
                                      "Procenten: delen",
                                      "Procenten: percentage",
                                      "Promillage: delen",
                                      "Promillage: percentage",
                                      "Spuitenpomp",
                                      "Verdunnen",
                                      "Voedingspomp: ml per uur",
                                      "Voedingspomp: resterende tijd",
                                      "Zuurstofberekening"};
  </code></pre>
  
  <p>}</p>