Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Jen948
7 / 7 / 2
Регистрация: 27.10.2013
Сообщений: 207
#1

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

10.03.2014, 14:51. Просмотров 770. Ответов 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);
                    }
                });
            }
        });
    }
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.03.2014, 14:51
Ответы с готовыми решениями:

Падает программа Navigation Drawer
Собрал пример этот бокового меню...

Почему падает программа до исполнения основного кода
09-05 11:15:57.226: E/dalvikvm(759): Could not find class...

Программа падает при попытке задать текст TextView в диалоговом окне
Лог: java.lang.IllegalStateException: Could not execute method of the...

Падает приложение
final Button changeB = (Button)findViewById(R.id.but_change); ...

Клиент падает при запуске
Добрый день подскажите пожалуйста, где может быть ошибка. Не как не получается...

9
Geldi
7 / 7 / 2
Регистрация: 04.03.2014
Сообщений: 129
10.03.2014, 15:15 #2
Jen948, не знаю как на jave но на Delphi xe5 это не проблема. И все стабильно работает.
0
Jen948
7 / 7 / 2
Регистрация: 27.10.2013
Сообщений: 207
10.03.2014, 15:28  [ТС] #3
Цитата Сообщение от Geldi Посмотреть сообщение
не знаю как на jave но на Delphi xe5 это не проблема. И все стабильно работает.
А еще на c# работает. Нужно именно под Android.
0
Geldi
7 / 7 / 2
Регистрация: 04.03.2014
Сообщений: 129
10.03.2014, 15:40 #4
Jen948, ну конечно для Delphi xe5 для Android.
0
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
10.03.2014, 16:40 #5
Цитата Сообщение от Jen948 Посмотреть сообщение
программа падает
Покажите стек трейс, а то не понятно где ей поплохело.
Цитата Сообщение от Jen948 Посмотреть сообщение
Нужно написать программу, которая последовательно отображает два экрана
Может быть не стоит так извращаться и скрывать/показывать элементы экрана, а просто сделать два фрагмента (или активити на худой конец) с неизменяемым графическим интерфейсом, и просто переключатся между ними ?
0
Jen948
7 / 7 / 2
Регистрация: 27.10.2013
Сообщений: 207
10.03.2014, 19:23  [ТС] #6
Цитата Сообщение от angryrobot Посмотреть сообщение
Может быть не стоит так извращаться и скрывать/показывать элементы экрана, а просто сделать два фрагмента (или активити на худой конец) с неизменяемым графическим интерфейсом, и просто переключатся между ними ?
Можно, пожалуйста, поподробнее?
Суть в том, чтобы сделать поэтапный мастер настройки. Дизайн окна каждого этапа прописан в отдельном xml.

Как проще организовать переход? (нажимаем "далее" - открывается следующее окно).
0
angryrobot
Командир зеленых роботов
348 / 285 / 54
Регистрация: 08.10.2013
Сообщений: 565
10.03.2014, 20:30 #7
Цитата Сообщение от Jen948 Посмотреть сообщение
Суть в том, чтобы сделать поэтапный мастер настройки
Это меняет дело. Для мастера настройки - скрывать некоторые элементы - нормальная идея, сам так сделал
Цитата Сообщение от Jen948 Посмотреть сообщение
Как проще организовать переход? (нажимаем "далее" - открывается следующее окно)
Для начала надо создать правильную иерархию внутри layout'а. У меня сделано так:
Падает программа

Т.е. для каждого шага мастера есть свой отдельный контейнер. Когда прячут контейнер, то вместе с ним исчезает и его содержимое. Ну а потом только остается в коде прописать логику которая переключает шаги по нажатию кнопок вперед/назад.
0
petruchodd
129 / 126 / 22
Регистрация: 23.06.2009
Сообщений: 694
Завершенные тесты: 1
11.03.2014, 02:08 #8
Лучший ответ Сообщение было отмечено Jen948 как решение

Решение

так а в чем проблема то собственно ?
Госпади. какое извращение. Я любитель кода .. не хмл но это так.
Два Layout's . один с одним экраном , другой с другим
по нажатию на кнопку(первый слой) устанавливать через setContentView (или на худой конец создать бекграунд лайоут и просто менять его содержмие )
:/
тоже самое для возврата с другого слоя в предыдущий.

Если уж уже на худой конец нужно что бы всё это происходило на одном слое , то тогда как советовали ранее нужно правильно сделать иерархию. И через инвиз показывать то , что нада.
1
Tester64
396 / 357 / 46
Регистрация: 22.05.2013
Сообщений: 2,518
11.03.2014, 03:36 #9
Не стал сильно вникать в код, но почему Вы используете but1.setVisibility(View.INVISIBLE);
Я пользуюсь but1.setVisibility(View.GONE); Это РЕАЛЬНО скрывает. И освобождает место для других элементов.
0
Jen948
7 / 7 / 2
Регистрация: 27.10.2013
Сообщений: 207
11.03.2014, 12:12  [ТС] #10
Цитата Сообщение от petruchodd Посмотреть сообщение
Два Layout's . один с одним экраном , другой с другим
по нажатию на кнопку(первый слой) устанавливать через setContentView
Это как раз то, что нужно.
Спасибо!
0
11.03.2014, 12:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2014, 12:12

Приложение падает на старых версиях OS
Ещё раз привет. Ещё один крик души. * Не беспокойтесь, я не буду сливать...

Приложение с ListView падает с NullPointerException
Нужно было создать список с помощью ListView (На одной странице вводится...

Падает приложение для публикации вконтакте
public class VkWebViewClient extends WebViewClient { private static...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

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