Вы пытались расширить класс AlertDialog и он implment OnCLickListener
public class MyDialog extends AlertDialog implements OnClickListener {
private Button myButton;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// use LayoutInflater to get at custom button
LayoutInflater layoutInflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View contentView = layoutInflater.inflate(R.layout.mydialog_layout, null);
// pull button from layout, set listener
myButton = (Button)contentView.findViewById(R.id.myButtonId);
myButton.setOnClickListener(this);
setContentView(contentView);
}
public void onClick(View v) {
if (v.getId() == R.id.myButtonId) {
// DO your button actions.
}
}
}
После этого шаблона, вы можете положить любые кнопки, необходимые и создать свою собственную функциональность в самом диалоге. Вы также можете создать свою собственную кнопку во время выполнения, но вам нужно будет выполнить дополнительную работу по настройке текста, размера, значка кнопки и т. Д.
Затем вы можете создать диалог в своей деятельности в окне onCreateDialog() вызов.
protected Dialog onCreateDialog(int id) {
MyDialog dialog = new MyDialog(this, 0);
dialog.setOnCancelListener(this);
dialog.setOnDismissListener(this);
return dialog;
}
Надеюсь, это поможет.
Благодарим за ответ и многочисленные альтернативы :) – Parker
Вариант 4. работает хорошо. Вы можете определить «ListView» в этом настраиваемом макете и прикрепить к нему свой собственный адаптер. Бонусные баллы за использование [CWAC 'MergeAdapater'] (https://github.com/commonsguy/cwac-merge), чтобы иметь названия групп между наборами опций :) – ohhorob