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

Reply via email to