Clique no item da lista nao é identificado

criei uma ListActivity , porem quando clico em um item da lista o evento onListItemClick não é chamado nunca…

o q pode ser?

[code]

import java.util.ArrayList;

import android.app.ListActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.Toast;

public class ListSelectContactsActivity extends ListActivity
{

  private ArrayList<GridSelectContactsDataController> list;

    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        // Setei minha activity com o arquivo layout criado
        setContentView(R.layout.tela_selecionar_contatos);
        list = new ArrayList<GridSelectContactsDataController>();
        SelectContactsListAdapterController selectContactsListAdapterController = new SelectContactsListAdapterController(this, list);
        // Agora vou popular minha lista
        this.getListView().setAdapter(selectContactsListAdapterController);	        
        ArrayList<Contato> androidContacts = selectContactsListAdapterController.getAndroidContacts();	        
        // criar os dados da minha lista
        for (Contato contact : androidContacts)
        {
            list.add(new GridSelectContactsDataController(false, contact.getNomeContato()));
        }	        
        // Habilita o scroll rápido na lista
        this.getListView().setFastScrollEnabled(true);
    }

    @Override
    protected void onListItemClick(ListView list, View view, int position,
            long id) {
        Toast.makeText(ListSelectContactsActivity.this,
                "contato selecionado : " + this.list.get(position).getContactName(),
                Toast.LENGTH_SHORT).show();
    }

}[/code]


import java.util.ArrayList;



import android.content.ContentResolver;
import android.content.Context;
import android.database.Cursor;
import android.provider.ContactsContract;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.CheckBox;
import android.widget.TextView;
import android.widget.Toast;

public class SelectContactsListAdapterController extends BaseAdapter
{
	private Context context;
	private ArrayList<GridSelectContactsDataController> list;

	public SelectContactsListAdapterController(Context context, ArrayList<GridSelectContactsDataController> list) {
		this.context = context;
		this.list = list;
	}

	public int getCount() {
		return list.size();
	}

	public Object getItem(int position) {
		return list.get(position);
	}

	public long getItemId(int position) {
		return position;
	}


	public View getView(int position, View convertView, ViewGroup parent) {

		// Inflando o layout das linhas, ou seja, aqui eu defino que as linhas serão
		// conforme o arquivo de layout "R.layout.row_layout"
		LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
		View view = inflater.inflate(R.layout.selecionar_contatos_row, null);

		// Recuperando as views do layout
		TextView name = (TextView) view.findViewById(R.id.txtNameContact);
		CheckBox checkSelect = (CheckBox) view.findViewById(R.id.checkSectContact);

		// Setando os dados no layout inflado 
		// Dados estes que vem da minha lista
		name.setText(list.get(position).getContactName());
		checkSelect.setChecked(list.get(position).isContactSelect());

		return view;
	}

	public ArrayList<Contato> getAndroidContacts() 
	{	   
		ArrayList<Contato> androidContacts = new ArrayList<Contato>();
		ContentResolver cr = context.getContentResolver();
		Cursor cur = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);
		if (cur.getCount() > 0)
		{
			while (cur.moveToNext())
			{
				if (Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER))) > 0)
				{
					String id = cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
					String name = cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));	
					/*
					 * Se o contato tiver algum telefone registrado, adiciona-se os telefones dele em uma string
					 *que sera atribuida ao objeto referente ao contato do loop
					 */
					String phones = "";

					Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = ?", new String[]{id}, null);
					while (pCur.moveToNext())
					{
						String phoneNo = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
						if (phones != "")
							phones += "*"+phoneNo;
						else
							phones += phoneNo;
					}
					pCur.close();

					/*
					 * Adiciona-se os telefones do contato em uma string
					 *que sera atribuida ao objeto referente ao contato do loop
					 */	    		  
					String emails = "";
					Cursor emailCur = cr.query( ContactsContract.CommonDataKinds.Email.CONTENT_URI, 
							null,
							ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = ?", 
							new String[]{id}, null); 
					while (emailCur.moveToNext()) 
					{     				  
						String email = emailCur.getString(emailCur.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));
						if (phones != "")
							emails += "*"+email;
						else
							emails += email;
					} 
					emailCur.close();

					// cria o objeto referente ao contato da iteracao
					Contato contact = new Contato ();
					contact.setIdContato(id);
					contact.setPrioridade(PrioridadeEnum.ALTA);
					contact.setNomeContato(name);
					contact.setEmail(emails);
					contact.setNumCelular(phones);
					contact.setEstatus(EstatusEnum.ATIVO);

					//adiciona o contato na lista de contatos
					androidContacts.add(contact);
				}

			}  
		}

		return androidContacts;
	}
}

public class GridSelectContactsDataController 
{
	private boolean contactSelect;
	private String contactName;
	
	
	public GridSelectContactsDataController(boolean contactSelect,String contactName)
	{
		this.contactSelect = contactSelect;
		this.contactName = contactName;
	}


	public boolean isContactSelect() {
		return contactSelect;
	}


	public void setContactSelect(boolean contactSelect) {
		this.contactSelect = contactSelect;
	}


	public String getContactName() {
		return contactName;
	}


	public void setContactName(String contactName) {
		this.contactName = contactName;
	}
	
	
	
	

}

[code]<?xml version="1.0" encoding="utf-8"?>




        <Button android:text="Search" android:id="@+id/button2"
            android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
    </TableRow>
</TableLayout>
<ListView android:id="@android:id/list" android:layout_height="wrap_content"
    android:layout_width="match_parent"></ListView>

[/code]

[code]<?xml version="1.0" encoding="utf-8"?>

<TableLayout
    android:id="@+id/tableLayout"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    android:padding="10dp"
    android:stretchColumns="0" >

    <TableRow
        android:id="@+id/rowList"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >

        <CheckBox
            android:id="@+id/checkSectContact"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

        <TextView
            android:id="@+id/txtNameContact"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
        </TextView>
        
    </TableRow>
    
</TableLayout>

[/code]

Alguem sabe o pq o evento de clique na lista nao eh chamado?

Se a View que voce exibe dentro do ListView tem algum evento de click ele vai consumir antes da List.

mas eu nao coloquei nenhum evento na textview…

Esqueceu?

ListView l = getListView();
l.setOnItemClickListener(this);