@Override
protected void onListItemClick(ListView l,View v,int position,long id){
String name = (String)getListAdapter().getItem(position).toString();
para mi caso requiero el id que relaciona un JOIN, y si ya se cargaron lo datos la primera vez que forme la lista, no deberia de volver a la base de datos local, por lo tanto puedes hacer esto
@Override
protected void onListItemClick(ListView l,View v,int position,long id){
int n = 2; //posicion de id en el select
SQLiteCursor cursorJoin=(SQLiteCursor)getListAdapter().getItem(position);
long idPerson = cursorJoin.getString(n);
donde la n es la posicion del valor que requiero en del siguiente Select
SELECT cliente._id, cliente.name, persona.idPersona,..................
FROM cliente
INNER JOIN persona ON cliente.code=persona.code
INNER JOIN persona ON cliente.code=persona.code