2013-08-16 3 views
0

Тесно следующий скелет показано здесь:AlertDialog должен быть типа Dialog

http://developer.android.com/guide/topics/ui/dialogs.html#

Все по этой странице, они используют заявления, как это:

public Dialog onCreateDialog(Bundle savedInstanceState) { 
    AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
    builder.setTitle(R.string.pick_color); 
     .setItems(R.array.colors_array, new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
      // The 'which' argument contains the index position 
      // of the selected item 
     } 
    }); 
    return builder.create(); 
} 

Тип данных этого метода является то, «Диалог», но используется строитель, поэтому возвращаемым типом метода является «AlertDialog». Eclipse понятно говорит мне, что они несовместимы и не будут компилировать мой код, когда я пытаюсь сделать что-то подобное. Он также не позволит мне передать результат вызова builder.create(), чтобы набрать Dialog, поэтому нет никакой работы. Как я могу исправить это и получить свой код для компиляции? Чинги.

ответ

0

Вы только что скопировали и прошли? Код от http://developer.android.com/guide/topics/ui/dialogs.html# работает без каких-либо ошибок. AlertDialog является подклассом Dialog, и это не ошибка (возвращает alertdialog, когда тип метода является диалогом.) Может быть, вы забыли о «extends DialogFragment»?

Смежные вопросы