Android Custom List Dialog - PullRequest
       3

Android Custom List Dialog

0 голосов
/ 04 марта 2011

Может ли кто-нибудь указать рабочий пример настраиваемого диалогового окна, которое принимает ArrayAdapter в качестве входных данных и отображает список выбора.

Я пытался создать диалог с помощью AlertDialog Builder как таковой ...

 final ArrayAdapter<MyObject> myAdapter = getMyobjects();
            final AlertDialog.Builder builder = new AlertDialog.Builder(this).setTitle("Pick an item").setAdapter(myAdapter,
                    new android.content.DialogInterface.OnClickListener() {
                        public void onClick(final DialogInterface dialog, final int item) {
                            Toast.makeText(Islands.this, myAdapter.getItem(item).toString(), Toast.LENGTH_SHORT).show();    
                        }
                    });
            final AlertDialog alert = builder.create();
            return alert;

Моя проблема в том, что мой диалог не обновляется, тогда я позвонил

    @Override
protected void onPrepareDialog(final int id, final Dialog dialog) {
    switch (id) {
         case DIALOG_GET_AVAIL_DESTS:
         ((AlertDialog) dialog).getListView().setAdapter( getDestinations());
         break;
    }
}

Однако слушатель onClick прослушивает начальный набор элементов ...

Ответы [ 3 ]

0 голосов
/ 11 ноября 2011

Вы должны позвонить на

invalidateViews ()

в вашем списке просмотра - это заставит его перерисовать представление с обновлениями.

0 голосов
/ 15 декабря 2011

Поскольку вы используете onPrepareDialog(int id, Dialog dialog), я предполагаю, что вы изначально настраиваете диалог в onCreateDialog(int id).

Это заставляет систему сохранять диалог, который вы изначально создали.Для достижения желаемой функциональности, когда диалоговое окно закрыто, скажите системе, чтобы оно было удалено, вызвав android.app.Activity.removeDialog(int id).

. При любых последующих вызовах ваш диалог будет перегенерирован методом onCreateDialog(int id), вызываяэлементов для обновления.

0 голосов
/ 07 марта 2011

Действительно, AlertDialog реализует шаблон проектирования Фасада с этим классом: http://www.netmite.com/android/mydroid/frameworks/base/core/java/com/android/internal/app/AlertController.java

И весь код такой беспорядок ... Мне понадобилось 3 часа, чтобы попытаться это сделать, и я собираюсьпостроить диалог с нуля, используя в качестве основы android.R.layout.

Steff

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...