Aggiungi listener onlongclick ad un dialogo di avviso

Ho un AlertDialog in android che contiene un elenco di amici da sqlite. Quando faccio clic sul nome della buddy nell'elenco, quel compagno viene chiamato. Quello che voglio fare è aggiungere un longclicklistener all'elenco, in modo da poter essere chiesto di eliminare gli amici nell'elenco. Ho difficoltà ad avere un lavoro onlclick e onlongclick sullo stesso elemento. Qualcuno mi può dare un puntatore qui. Ho lavorato con android per alcuni mesi. Grazie per qualsiasi aiuto!

private void displayBuddyList(String region) { final String region2 = region; Context context = getApplicationContext(); dh = new DataBaseHelper(context); List<String> bnames = dh.selectBuddies(); Log.d(TAG, "Buddy Names: " +bnames); final CharSequence[] buds = bnames.toArray(new CharSequence[bnames.size()]); // final CharSequence[] items = {"Mark", "Vikrant", "Olle,"Jane","Dan"}; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Select a Buddy"); builder.setItems(buds, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialogInterface, int item) { // showShortToast("Clicked on:"+buddy[item]); String ptcode = buds[item].toString();; if (region2 == "A") { callbuddy(ptcode,region2); } else if (region2 == "E") { callbuddy(ptcode,region2); } else if (region2 == "P") { callbuddy(ptcode,region2); } else { showShortToast("We have a bug"); } return; } }); builder.create().show(); } 

  • Rimozione plugin cordova dal progetto
  • Query where si trova e where
  • Android Studio - Come posso fare un AVD con ARM invece di HAXM?
  • Perché non possiamo utilizzare barre di sistema traslucenti con e ActionBar
  • Come utilizzare SQLite da Servizi in Android?
  • Polling in servizio normale di Android in servizio, ottimizzando la durata della batteria
  • "Non è ansible fare un riferimento statico a un metodo non statico" in Android
  • Perché il mio aggiornamento di Eclipse / Android non è più in grado di build il mio APK?
  • Perché il getBackStackEntryCount () di FragmentManager restituisce zero?
  • Schermo bianco prima dello splashscreen
  • Android: Puoi nidificare frammenti?
  • Tempo / tempo di presentazione incoerente durante la decodifica video
  • One Solution collect form web for “Aggiungi listener onlongclick ad un dialogo di avviso”

    un modo per aggiungere un OnLongClickListener è quello di superare l'OnShowListener della window di dialogo e di impostare un OnItemLongClickListener dall'interno del metodo onShow (DialogInterface). Prova questo:

     private void displayBuddyList(String region) { final String region2 = region; Context context = getApplicationContext(); dh = new DataBaseHelper(context); List<String> bnames = dh.selectBuddies(); Log.d(TAG, "Buddy Names: " +bnames); final CharSequence[] buds = bnames.toArray(new CharSequence[bnames.size()]); // final CharSequence[] items = {"Mark", "Vikrant", "Olle,"Jane","Dan"}; AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle("Select a Buddy"); builder.setItems(buds, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialogInterface, int item) { // showShortToast("Clicked on:"+buddy[item]); String ptcode = buds[item].toString();; if (region2 == "A") { callbuddy(ptcode,region2); } else if (region2 == "E") { callbuddy(ptcode,region2); } else if (region2 == "P") { callbuddy(ptcode,region2); } else { showShortToast("We have a bug"); } return; } }); final AlertDialog ad = builder.create(); //don't show dialog yet ad.setOnShowListener(new OnShowListener() { @Override public void onShow(DialogInterface dialog) { ListView lv = ad.getListView(); //this is a ListView with your "buds" in it lv.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { Log.d("Long Click!","List Item #"+position+"was long clicked"); return true; } }); } }); ad.show(); 

    }

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.