I guess I found the solution. Abhishek
On Dec 11, 11:15 am, Abhi <abhishek.r.sha...@gmail.com> wrote: > Hi > > I am copying my code below to do the above. The problem I have right > now is after I have picked a Contact from the list, I am not able to > add the name to the listview. I get a Force Close at that step. See > point no. A below to understand what I am talking about. > > Also, the ListView is built using 'strings' ArrayList which is empty > the very first time. The Menu option 'Add' is then used to pick a > Contact and add the contact Name to the ArrayList which is then > > import android.app.ListActivity; > import android.content.Intent; > import android.database.Cursor; > import android.net.Uri; > import android.os.Bundle; > import android.provider.MediaStore; > import android.view.ContextMenu; > import android.view.Menu; > import android.view.MenuInflater; > import android.view.MenuItem; > import android.view.View; > import android.view.ContextMenu.ContextMenuInfo; > import android.widget.ArrayAdapter; > import android.widget.HeaderViewListAdapter; > import android.widget.ListView; > import android.widget.Toast; > import android.view.View.OnLongClickListener; > import android.provider.Contacts.People; > > import android.widget.AdapterView.AdapterContextMenuInfo; > > public class ListViewTest extends ListActivity { > > private Uri iSelectedImageURI = null; > private ListView listView; > private List<String> strings; > > // private static final int EDIT_ID = 1; > // private static final int DELETE_ID = 2; > private static final int PICK_CONTACT = 3; > > @Override > public void onCreate(Bundle savedInstanceState) { > super.onCreate(savedInstanceState); > > setContentView(R.layout.list_view); > listView = (ListView) findViewById(R.id.listView); > > strings = new ArrayList<String>(); > > listView.setAdapter(new ArrayAdapter<String>(this, > android.R.layout.simple_list_item_multiple_choice, strings)); > > listView.setItemsCanFocus(false); > listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE); > > // For Long Press on ListView items > registerForContextMenu(listView); > > } > > @Override > public boolean onCreateOptionsMenu(Menu menu) { > > MenuInflater inflater = getMenuInflater(); > inflater.inflate(R.menu.add_send, menu); > > return super.onCreateOptionsMenu(menu); > } > > @Override > public boolean onOptionsItemSelected(MenuItem item) { > > switch (item.getItemId()) { > > case R.id.add: > > Intent contact = new Intent(Intent.ACTION_PICK, > People.CONTENT_URI); > startActivityForResult(contact, PICK_CONTACT); > > return true; > } > return true; > } > > @SuppressWarnings("unchecked") > @Override > public void onActivityResult(int reqCode, int resultCode, Intent > data){ > super.onActivityResult(reqCode, resultCode, data); > > switch (reqCode) { > case (PICK_CONTACT): > if (resultCode == RESULT_OK) { > Uri contactData = data.getData(); > Cursor c = managedQuery(contactData, null, null, null, > null); > > if(c.moveToFirst()) { // > ----------------------------------------------------------------- > POINT A > > String name = c.getString > (c.getColumnIndexOrThrow(People.NAME)); > strings.add(name); > > // Toast.makeText(this, name, Toast.LENGTH_SHORT).show(); // > ----------This works fine, I can read the Contact Name at this point. > > ((ArrayAdapter<String>) > ((HeaderViewListAdapter) listView.getAdapter()).getWrappedAdapter > ()).notifyDataSetChanged(); // I think this is where > the Problem comes. I am sure I am doing some stupid mistake. > > } > } > > break; > } > > } > } > > list_view.xml: > > <?xml version="1.0" encoding="utf-8"?> > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/ > android" > android:orientation="vertical" > android:layout_width="fill_parent" > android:layout_height="fill_parent"> > <ListView > android:id="@+id/listView" > android:layout_width="fill_parent" > android:layout_height="wrap_content"/> > </LinearLayout> > > Any help would be greatly appreciated. Thanks. > > Abhishek -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en