Как я могу отменить кнопки внутри моего alertDialog? - PullRequest
0 голосов
/ 28 марта 2012

Я знаю, что мог бы решить это с заголовком, но я бы предпочел не иметь его.Есть ли в любом случае доступ к свойствам кнопки отмены?

Мой код и изображение AlertView ниже.

enter image description here

for(int i = 0; i < 10; i++)
            {
                AlertDialog.Builder alert = new AlertDialog.Builder(this);
                if(view.getId() == (getResources().getIdentifier("imageButton" + (i+1), "id", "en.deco.android.livehud")))
                {


                    //alert.setTitle("Notes");

                    // Sets an EditText view to get user input 
                    final EditText input = new EditText(this);
                    input.setText(table.seats[i].getPlayer().getNotes());
                    alert.setView(input);

                    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int whichButton) 
                    {
                        for(int i = 0; i < 10; i++)
                        {
                            if(view.getId() == (getResources().getIdentifier("imageButton" + (i+1), "id", "en.deco.android.livehud")))
                            {
                                table.seats[i].getPlayer().setNotes(input.getText().toString());
                            }
                        }

                    }
                    });

                    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                      public void onClick(DialogInterface dialog, int whichButton) {
                        // Canceled.
                      }
                    });
                    alert.show();
                    return true;
                }
            }

Ответы [ 3 ]

1 голос
/ 28 марта 2012

Я считаю, что вам нужно установить ваш EditText на определенную ширину, или fill_parent / match_parent.

0 голосов
/ 30 марта 2012

setMinimumWidth () выполняет свою работу. Приведенный выше код просто генерирует отображаемые пиксели, а не пиксели.

DisplayMetrics metrics = getResources().getDisplayMetrics();
                        float dp = 250f;
                        int pixels = (int) (metrics.density * dp + 0.5f);
                        input.setMinimumWidth(pixels);
0 голосов
/ 28 марта 2012

Вы можете просто установить вид для вашей отрицательной кнопки, например так:

alert.setNegativeButton(R.id.cancelButton, new OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // Some action to be done when clicked..

            }
        });

и вы можете создать макет с кнопкой в ​​качестве корня, например:

<?xml version="1.0" encoding="utf-8"?>
<Button xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/cancelButton"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Cancel">
</Button>

, где вы обычно устанавливаете ширину кнопки wrap_content

Редактировать : есть также AlertDialog.Builder setNegativeButton (int textId, DialogInterface.OnClickListener listener)

...