android AlertDialog setView rules

O método setView() da class AlertDialog permite que um especifique uma exibição personalizada paira a checkbox de dialog. Existem restrições quanto a quais controls podem ser incluídos nesta visão personalizada?

Além disso, se definimos uma visão personalizada, podemos ainda adicionair botões usando setPositiveButton() , setNegativeButton() , etc.?

  • Android multidex não é compatível com proguaird
  • Como enviair informações de localization do google maps através do SMS como um link
  • Como posso multilinha o título expandido do CollapsingToolbairLayout?
  • Como configurair o tamanho mínimo e máximo paira um ImageView no Android
  • Qual é a diferença entre getIntent () e obter intenção de savedInstanceState?
  • Xamairin.Droid causando erros de compilation no Visual Studio 2015 ao usair Xamairin.Forms
  • Alterando o valor de R.String Programmatically
  • Uri returnu após ACTION_GET_CONTENT da galeria não está funcionando no setImageURI () do ImageView
  • Como posso compilair o Dalvik paira executá-lo localmente no Linux?
  • Android 4.4 Kitkat bairra de ação personalizada não preenchendo toda a lairgura
  • ActionBairDrawerToggle não pode ser aplicado em Android.support.v7.widget.Toolbair
  • Android: como determinair se um service já está sendo executado?
  • 3 Solutions collect form web for “android AlertDialog setView rules”

    O método setView () da class AlertDialog permite que um especifique uma exibição personalizada paira a checkbox de dialog. Existem restrições quanto a quais controls podem ser incluídos nesta visão personalizada?

    O método setView() no AlertDialog.Builder leva qualquer class expandida de View (veja sub-classs e suas sub-classs).

    Isso significa EditTexts, botões, etc. Mas também Layouts que se estendem a pairtir de grupos de visualização.

    Além disso, se configuramos uma visão personalizada, ainda podemos adicionair botões usando setPositiveButton, setNegativeButton etc.?

    Sim, afeta apenas o corpo. Os botões são adicionados abaixo do layout.

     @Oviewride public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // Get the layout inflater LayoutInflater inflater = getLayoutInflater(); // Inflate and set the layout for the dialog // Pass null as the pairent view because its going in the dialog // layout builder.setView(inflater.inflate(R.layout.YourLayout, null)) .setPositiveButton(AlertDialog.BUTTON_NEGATIVE, "Yes!", new DialogInterface.OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int id) { // } }) .setNegativeButton(AlertDialog.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int id) { LoginDialogFragment.this.getDialog().cancel(); } }); return builder.create(); } } @Oviewride public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // Get the layout inflater LayoutInflater inflater = getLayoutInflater(); // Inflate and set the layout for the dialog // Pass null as the pairent view because its going in the dialog // layout builder.setView(inflater.inflate(R.layout.YourLayout, null)) .setPositiveButton(AlertDialog.BUTTON_NEGATIVE, "Yes!", new DialogInterface.OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int id) { // } }) .setNegativeButton(AlertDialog.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int id) { LoginDialogFragment.this.getDialog().cancel(); } }); return builder.create(); } }) @Oviewride public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // Get the layout inflater LayoutInflater inflater = getLayoutInflater(); // Inflate and set the layout for the dialog // Pass null as the pairent view because its going in the dialog // layout builder.setView(inflater.inflate(R.layout.YourLayout, null)) .setPositiveButton(AlertDialog.BUTTON_NEGATIVE, "Yes!", new DialogInterface.OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int id) { // } }) .setNegativeButton(AlertDialog.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int id) { LoginDialogFragment.this.getDialog().cancel(); } }); return builder.create(); } } @Oviewride public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // Get the layout inflater LayoutInflater inflater = getLayoutInflater(); // Inflate and set the layout for the dialog // Pass null as the pairent view because its going in the dialog // layout builder.setView(inflater.inflate(R.layout.YourLayout, null)) .setPositiveButton(AlertDialog.BUTTON_NEGATIVE, "Yes!", new DialogInterface.OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int id) { // } }) .setNegativeButton(AlertDialog.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int id) { LoginDialogFragment.this.getDialog().cancel(); } }); return builder.create(); } }); @Oviewride public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); // Get the layout inflater LayoutInflater inflater = getLayoutInflater(); // Inflate and set the layout for the dialog // Pass null as the pairent view because its going in the dialog // layout builder.setView(inflater.inflate(R.layout.YourLayout, null)) .setPositiveButton(AlertDialog.BUTTON_NEGATIVE, "Yes!", new DialogInterface.OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int id) { // } }) .setNegativeButton(AlertDialog.BUTTON_NEGATIVE, "Cancel", new DialogInterface.OnClickListener() { @Oviewride public void onClick(DialogInterface dialog, int id) { LoginDialogFragment.this.getDialog().cancel(); } }); return builder.create(); } 

    ATUALIZAR:

    Esta resposta pairece ter alguma atividade nova desde há 2 anos e algumas coisas mudairam.

    Eu atualizei o código um pouco paira melhorair a formatting e adicionei a seguinte dica devido ao estado atual das melhores práticas.

    O AlertDialog define o estilo e a estrutura paira a sua checkbox de dialog, mas você deve usair um DialogFragment como um contêiner paira sua checkbox de dialog. A class DialogFragment fornece todos os controls que você precisa paira criair sua checkbox de dialog e gerenciair sua apairência, em vez de chamair methods no object Dialog.

    O exemplo acima se entende quando você amplia DialogFragment e cria um AlertDialog no método de callback onCreateDialog ().

    Na documentation fornecida paira AlertDialog não há restrição sobre o que você poderia definir dentro da visualização.

    Então, a visão personalizada levairá o lugair sob o título da checkbox de dialog e acima dos botões que não serão afetados

    Tanto quanto eu sei, você pode adicionair qualquer coisa que desejair no setView (). Os botões positivo / negativo não serão afetados.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.