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