Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Lokr
0 / 0 / 0
Регистрация: 09.02.2014
Сообщений: 6
#1

AlertDialog появляется дважды - Android

19.03.2014, 18:30. Просмотров 608. Ответов 3
Метки нет (Все метки)

При вызове приложения появляется AlertDialog. Когда закрываю его он появляется еще раз. Во второй раз он закрывается. В чем ошибка?
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
public static class DummySectionFragment extends Fragment {
        /**
         * The fragment argument representing the section number for this
         * fragment.
         */
        public static final String ARG_SECTION_NUMBER = "section_number";
        private ListView list;
        private String[] st;
        private Button bt;
        private ProgressBar pr;
        String title;
        Intent intent;
 
        public DummySectionFragment() {
        }
 
        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                Bundle savedInstanceState) {
            final View rootView = inflater.inflate(R.layout.fragment_main_dummy,
                    container, false);
            //list = (ListView) rootView.findViewById(R.id.listView1);
            st = getResources().getStringArray(R.array.punkts);
            
            ArrayAdapter<String> adapter = new ArrayAdapter<String>(this.getActivity(),
                    R.layout.fragment_list_item, st);
            //list.setAdapter(adapter);
 
            intent = this.getActivity().getIntent();
            
            bt = (Button) rootView.findViewById(R.id.button1);
            pr = (ProgressBar) rootView.findViewById(R.id.progressBar1);
            pr.setMax(100);
            
            bt.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    new DownloadFileFromURL().execute("");
                }
            });
            if (intent.getAction().equals("android.intent.action.VIEW")){
                View view = LayoutInflater.from(this.getActivity()).inflate(R.layout.ask, null);
                EditText editText = (EditText) view.findViewById(R.id.editText1);
                Uri uri = intent.getData();
                editText.setText(uri.getLastPathSegment());
                AlertDialog.Builder builder = new AlertDialog.Builder(this.getActivity());
                builder.setTitle(R.string.sett);
                builder.setView(view);
                builder.setCancelable(false);
                builder.setPositiveButton(R.string.down, new DialogInterface.OnClickListener(){
 
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
                AlertDialog dialog = builder.create();
                dialog.show();
            }
            return rootView;
        }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.03.2014, 18:30     AlertDialog появляется дважды
Посмотрите здесь:

Android AlertDialog Error
Android Не показывается AlertDialog
Потоки и AlertDialog Android
Custom AlertDialog Android
AlertDialog Android
ListView+onCreateContextMenu->AlertDialog Android
Android Изменить цвет AlertDialog
Android TextView а AlertDialog
Не работает AlertDialog Android
Android Spinner в AlertDialog
Android AlertDialog и RadioGroup
Android AlertDialog вылезает за разметку

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
verylazy
Заблокирован
19.03.2014, 18:34     AlertDialog появляется дважды #2
по идее в onClick()
можно и не писать dialog.dismiss();
можно без этой строчки попробовать, но мне кажется это не то
Lokr
0 / 0 / 0
Регистрация: 09.02.2014
Сообщений: 6
19.03.2014, 18:38  [ТС]     AlertDialog появляется дважды #3
verylazy, без этой строки тоже два раза появляется. Это я пытался исправить
Max_92
25 / 7 / 2
Регистрация: 26.04.2010
Сообщений: 205
19.03.2014, 21:26     AlertDialog появляется дважды #4
Lokr, во-первых, не видно как ты добавляешь фрагмент на активити, возможно при добавлении уже срабатывает show. Во-вторых, если на твоём фрагменте создаётся диалог, логичнее будет сделать его диалоговым (т.е. наследоваться от класса DialogFragment). И создавать сам диалог в колбеке onCreateDialog, возвратив в нём builder.create(). Тогда onCreateView уже будет не нужен, так как билдер сам inflate'ит отображаемое содержимое. После этого инстанс диалога на фрагменте можно в любой момент получить вызовом getDialog(). На самой активити в нужном месте (в т.ч. в onCreate, т.к. фрагмент создаётся и приаттачивается раньше, чем создаётся активити) диалоговый фрагмент добавлять так:

Java
1
2
3
4
5
6
            someDialogFragment = (SomeDialogFragment) getFragmentManager()
                    .findFragmentByTag(DIALOG_TAG);
            if (someDialogFragment == null) {
                someDialogFragment = new SomeDialogFragment();
                someDialogFragment.show(getFragmentManager(), DIALOG_TAG);
            }
и как раз в show происходит транзакция, добавление фрагмента в менеджер и commit(), за этим следить не надо. При дестрое активити кстати onDismiss на фрагменте сработает сам и по идее должна выполниться транзакция, убирающая фрагмент из менеджера.
Yandex
Объявления
19.03.2014, 21:26     AlertDialog появляется дважды
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru