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(); } 

  • Scala una risorsa disegnabile in XML (Android)
  • Come creare un cassetto di navigazione personalizzato che apre ListView adiacente al cassetto onitemclick?
  • Adattatore personalizzato, background dell'elemento selezionato
  • Come creare tab bar in centro in android?
  • Ottieni l'attività visibile corrente all'utente
  • Lo stato di visualizzazione di frammento di Android all'interno di un host di tab
  • Applicazione Android con sincronizzazione della rubrica telefonica?
  • Come gestire più Async Tasks in modo efficiente in Android
  • Supporto di Android smartphone per Android Tablet
  • Apache HttpClient ottiene aggiungere un'intestazione della gamma di byte?
  • Indirizzo IP al nome NetBIOS / FQDN in Java / Android
  • Google Cloud Messaging registra AUTHENTICATION_FAILED
  • 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.