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

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

Войти
Регистрация
Восстановить пароль
 
Jen948
7 / 7 / 0
Регистрация: 27.10.2013
Сообщений: 207
#1

Падает программа - Android

10.03.2014, 14:51. Просмотров 709. Ответов 9
Метки нет (Все метки)

Здравствуйте.
Нужно написать программу, которая последовательно отображает два экрана.
На первом надпись "Добро пожаловать" и кнопка "Начать".
После нажатия кнопки должны появиться другие надписи и кнопки.

Пробую сделать так - но программа падает. В чем дело?
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
        final Button button = (Button) findViewById(R.id.buttonstart);
        button.setOnClickListener(new Button.OnClickListener()
        {
            public void onClick(View v) // клик на кнопку
            {
                final TextView txt1 = (TextView) findViewById(R.id.textView1);
                txt1.setVisibility(View.INVISIBLE);
 
                final TextView txt2 = (TextView) findViewById(R.id.textView2);
                txt2.setVisibility(View.INVISIBLE);
 
                final Button but1 = (Button) findViewById(R.id.buttonstart);
                but1.setVisibility(View.INVISIBLE);
                but1.setEnabled(false);
 
                final Button button1 = (Button) findViewById(R.id.buttonadd);
                final TextView txt3 = (TextView) findViewById(R.id.textView7);
                final EditText etxt1 = (EditText) findViewById(R.id.editText);
                final EditText etxt2 = (EditText) findViewById(R.id.editText2);
                String str = "";
                button1.setOnClickListener(new Button.OnClickListener()
                {
                    public void onClick(View v) // клик на кнопку
                    {
                        String str = txt3.getText().toString()+"\n"+etxt1.getText().toString()+" - " + etxt2.getText().toString();
                        txt3.setText(str);
                    }
                });
            }
        });
Полный кол (если требуется):
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
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        if (savedInstanceState == null) {
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.container, new PlaceholderFragment())
                    .commit();
        }
 
        final Button button = (Button) findViewById(R.id.buttonstart);
        button.setOnClickListener(new Button.OnClickListener()
        {
            public void onClick(View v) // клик на кнопку
            {
                final TextView txt1 = (TextView) findViewById(R.id.textView1);
                txt1.setVisibility(View.INVISIBLE);
 
                final TextView txt2 = (TextView) findViewById(R.id.textView2);
                txt2.setVisibility(View.INVISIBLE);
 
                final Button but1 = (Button) findViewById(R.id.buttonstart);
                but1.setVisibility(View.INVISIBLE);
                but1.setEnabled(false);
 
                final Button button1 = (Button) findViewById(R.id.buttonadd);
                final TextView txt3 = (TextView) findViewById(R.id.textView7);
                final EditText etxt1 = (EditText) findViewById(R.id.editText);
                final EditText etxt2 = (EditText) findViewById(R.id.editText2);
                String str = "";
                button1.setOnClickListener(new Button.OnClickListener()
                {
                    public void onClick(View v) // клик на кнопку
                    {
                        String str = txt3.getText().toString()+"\n"+etxt1.getText().toString()+" - " + etxt2.getText().toString();
                        txt3.setText(str);
                    }
                });
            }
        });
    }
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Geldi
7 / 7 / 2
Регистрация: 04.03.2014
Сообщений: 129
10.03.2014, 15:15     Падает программа #2
Jen948, не знаю как на jave но на Delphi xe5 это не проблема. И все стабильно работает.
Jen948
7 / 7 / 0
Регистрация: 27.10.2013
Сообщений: 207
10.03.2014, 15:28  [ТС]     Падает программа #3
Цитата Сообщение от Geldi Посмотреть сообщение
не знаю как на jave но на Delphi xe5 это не проблема. И все стабильно работает.
А еще на c# работает. Нужно именно под Android.
Geldi
7 / 7 / 2
Регистрация: 04.03.2014
Сообщений: 129
10.03.2014, 15:40     Падает программа #4
Jen948, ну конечно для Delphi xe5 для Android.
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
10.03.2014, 16:40     Падает программа #5
Цитата Сообщение от Jen948 Посмотреть сообщение
программа падает
Покажите стек трейс, а то не понятно где ей поплохело.
Цитата Сообщение от Jen948 Посмотреть сообщение
Нужно написать программу, которая последовательно отображает два экрана
Может быть не стоит так извращаться и скрывать/показывать элементы экрана, а просто сделать два фрагмента (или активити на худой конец) с неизменяемым графическим интерфейсом, и просто переключатся между ними ?
Jen948
7 / 7 / 0
Регистрация: 27.10.2013
Сообщений: 207
10.03.2014, 19:23  [ТС]     Падает программа #6
Цитата Сообщение от angryrobot Посмотреть сообщение
Может быть не стоит так извращаться и скрывать/показывать элементы экрана, а просто сделать два фрагмента (или активити на худой конец) с неизменяемым графическим интерфейсом, и просто переключатся между ними ?
Можно, пожалуйста, поподробнее?
Суть в том, чтобы сделать поэтапный мастер настройки. Дизайн окна каждого этапа прописан в отдельном xml.

Как проще организовать переход? (нажимаем "далее" - открывается следующее окно).
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
10.03.2014, 20:30     Падает программа #7
Цитата Сообщение от Jen948 Посмотреть сообщение
Суть в том, чтобы сделать поэтапный мастер настройки
Это меняет дело. Для мастера настройки - скрывать некоторые элементы - нормальная идея, сам так сделал
Цитата Сообщение от Jen948 Посмотреть сообщение
Как проще организовать переход? (нажимаем "далее" - открывается следующее окно)
Для начала надо создать правильную иерархию внутри layout'а. У меня сделано так:
Падает программа
Т.е. для каждого шага мастера есть свой отдельный контейнер. Когда прячут контейнер, то вместе с ним исчезает и его содержимое. Ну а потом только остается в коде прописать логику которая переключает шаги по нажатию кнопок вперед/назад.
petruchodd
89 / 89 / 8
Регистрация: 23.06.2009
Сообщений: 507
11.03.2014, 02:08     Падает программа #8
Сообщение было отмечено автором темы, экспертом или модератором как ответ
так а в чем проблема то собственно ?
Госпади. какое извращение. Я любитель кода .. не хмл но это так.
Два Layout's . один с одним экраном , другой с другим
по нажатию на кнопку(первый слой) устанавливать через setContentView (или на худой конец создать бекграунд лайоут и просто менять его содержмие )
:/
тоже самое для возврата с другого слоя в предыдущий.

Если уж уже на худой конец нужно что бы всё это происходило на одном слое , то тогда как советовали ранее нужно правильно сделать иерархию. И через инвиз показывать то , что нада.
Tester64
395 / 356 / 43
Регистрация: 22.05.2013
Сообщений: 2,518
11.03.2014, 03:36     Падает программа #9
Не стал сильно вникать в код, но почему Вы используете but1.setVisibility(View.INVISIBLE);
Я пользуюсь but1.setVisibility(View.GONE); Это РЕАЛЬНО скрывает. И освобождает место для других элементов.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2014, 12:12     Падает программа
Еще ссылки по теме:

Программа падает при попытке задать текст TextView в диалоговом окне Android
Android Падает приложение сразу после on Create
Android Клиент падает при запуске
Android Приложение с ListView падает с NullPointerException
Android Приложение падает после вызова finish

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

Или воспользуйтесь поиском по форуму:
Jen948
7 / 7 / 0
Регистрация: 27.10.2013
Сообщений: 207
11.03.2014, 12:12  [ТС]     Падает программа #10
Цитата Сообщение от petruchodd Посмотреть сообщение
Два Layout's . один с одним экраном , другой с другим
по нажатию на кнопку(первый слой) устанавливать через setContentView
Это как раз то, что нужно.
Спасибо!
Yandex
Объявления
11.03.2014, 12:12     Падает программа
Ответ Создать тему
Опции темы

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