È perché stai passando la posizione dell'elemento della visualizzazione elenco, dovrebbe essere l'ID riga del database.
Cambia
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
showsDialog(position);
}
a
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id)
{
TextView pos = (TextView) view.findViewById(R.id.rowno);
showsDialog(pos.getText().toString());
}
Anche tu hai detto
Once I delete any entry the row id on the listview doesn't seem to update the row number. (if i delete the first row, the row on top shows 2(should be 1, as it is the new first row)).
Ma non lo sarebbe perché questa è la riga del database e non la posizione di visualizzazione elenco.