Trovato:
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView parent, View view, int position, long id) {
//i valori delle textviews della row servono per la finestra di dialogo.
final TextView txtNome=(TextView)view.findViewById(R.id.txtNome);
final TextView txtCognome=(TextView)view.findViewById(R.id.txtCognome);
//codice per la finestra di dialogo
new AlertDialog.Builder(context)
.setMessage("SEI SICURO DI VOLER CANCELLARE "+txtNome.getText()+" "+txtCognome.getText()+"?")
.setPositiveButton("SI", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
helper.cancella(txtNome.getText().toString(),txtCognome.getText().toString());
Cursor c=helper.queryTotale(editNome.getText().toString(),editCognome.getText().toString());
crs=myCursorAdapter.swapCursor(c);
}
})
.setNegativeButton("NO",new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.show();
//------FINE CODICE per la finestra di dialogo
return true;
}
});
Funziona.Per il NO ho lasciato vuoto il comando, dal momento che non intendo fare nulla.
Notevole (marcato in rosso) il fatto che ottengo un messaggio di errore che chiama in causa il Theme usato, se non imposto il context coerentemente con quello dell'Activity.
Per far questo ho aggiunto all'inizio:
public class MainActivity extends AppCompatActivity { Context context; Cursor crs; EditText editCognome; EditText editNome; MyCursorAdapter myCursorAdapter; ListView listView; Helper helper; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); context=this;impostando poi a context il contesto della AlertDialog.Builder.
E così funziona.