#java #android #ооп
Не работает alertdialog во фрагменте Код fmonday.java (P.S.: Чтобы код не получился слишком длинным, я удалил некоторые куски где используется loader): public class fmonday extends Fragment implements LoaderManager.LoaderCallbacks{ final int DIALOG_ITEMS = 1; final CharSequence[] items = {"1", "2", "3"}; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView = inflater.inflate(R.layout.fmonday, container, false); Button button12 = (Button) rootView.findViewById(R.id.button12); button12.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { getActivity().showDialog(DIALOG_ITEMS); } }); } @Override //Здесь ошибка protected Dialog onCreateDialog(int id) { switch (id) { case DIALOG_ITEMS: AlertDialog.Builder adb = new AlertDialog.Builder(getActivity()); adb.setTitle("Adding class"); adb.setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int item) { Toast.makeText(getActivity().getApplicationContext(), "Your choice: " + items[item], Toast.LENGTH_SHORT).show(); } }); adb.setCancelable(false); return adb.create(); default: return null; } } logcat: Error:(88, 5) error: method does not override or implement a method from a supertype Как решить эту проблему?
Ответы
Ответ 1
Вы не верно указали сигнатуру метода (тип возвращаемого значения, имя метода, список аргументов(их кол-во, порядок и типы)) и создали новый, не существующий в классе метод, после чего сказали, что этот метод якобы существует в супер-классе. IDE заметила вашу ошибку и сказала об этом. На этом этапе вам надо было заглянуть в доки и убедиться, что в классе DialogFragment нет метода Dialog onCreateDialog(int id). Зато есть Dialog onCreateDialog(Bundle savedInstanceState) Итого вы допустили ошибку в списке аргументов метода, а именно в типе аргумента, написав int вместо Bundle.
Комментариев нет:
Отправить комментарий