0

Я создал диалог, который отображает список элементов.Несколько прослушивателей Alertdialog

Теперь мне нужно также уловить события с длинным щелчком для целей редактирования.

Как это может быть заложено?

AlertDialog.Builder builder = new AlertDialog.Builder(this); 
    builder.setTitle(R.string.select_a_person); 
    final UserAdapter adapter = new UserAdapter(this); 
    builder.setAdapter(adapter, new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 
      selecteduUser = (User) adapter.getItem(which); 
      if (selecteduUser != null) { 
       mName.setText(selecteduUser.getName()); 
      } 
     } 
    }); 
    builder.create().show(); 

ответ

0

В настоящее время я вижу два решения

Вариант 1:

создать свой собственный диалог. создайте действие со списком (или listactivity, что бы вы ни выбрали) и установите его в качестве диалога.

android:theme="@android:style/Theme.Dialog" 

Здесь вы можете легко обращаться с элементами списка. Затем при запуске этого пользовательского диалогового действия передаются данные списка, которые вы хотите отобразить.

Вариант 2:

установить setOnShowListener в вашем alertdialog в вашем подходе. позвольте мне отредактировать из вашей последней строки кода

AlertDialog dialog = builder.create(); 

dialog.setOnShowListener(new OnShowListener() 
{  
    @Override 
    public void onShow(DialogInterface dialog) 
    {  
     ListView list = ad.getListView(); 
     list.setOnItemLongClickListener(new OnItemLongClickListener() 
     { 
      @Override 
      public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) 
      { 
       // DO your task 
       return true; 
      }   
     });  
    } 
}); 
dialog.show();