Форум программистов, компьютерный форум, киберфорум
Программирование Android
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
1 / 1 / 1
Регистрация: 05.11.2010
Сообщений: 27

Ошибка при повороте экрана

17.10.2012, 22:19. Показов 4116. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, пишу по следующему вопросу:
Начал изучать программирование под андроид и создал простое приложение побаловаться. сделал 2 лейаута (layout/activity_m.xml, layout-land/activity_m.xml)
Код:
layout/activity_m.xml
XML
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
 
    <EditText
        android:id="@+id/txt_1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="10dp"
        android:inputType="number|numberSigned|numberDecimal"
        android:minHeight="50dp" />
 
    <Spinner
        android:id="@+id/snr_znak"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@id/txt_1"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:entries="@array/spisok"
        android:minHeight="50dp" />
 
    <EditText
        android:id="@+id/txt_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:layout_below="@id/snr_znak"
        android:layout_marginBottom="10dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:inputType="number|numberSigned|numberDecimal"
        android:minHeight="50dp" >
    </EditText>
 
    <TextView
        android:id="@+id/lbl_ravno"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/txt_2"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:gravity="center_vertical|center_horizontal"
        android:minHeight="50dp"
        android:text="@string/ravno"
        android:textAppearance="?android:attr/textAppearanceLarge" />
 
    <TextView
        android:id="@+id/lbl_ravno_zn"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/lbl_ravno"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:gravity="center_vertical|center_horizontal"
        android:minHeight="50dp"
        android:textAppearance="?android:attr/textAppearanceLarge" />
 
    <Button
        android:id="@+id/btn_calc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/lbl_ravno_zn"
        android:layout_alignRight="@+id/lbl_ravno_zn"
        android:layout_below="@+id/lbl_ravno_zn"
        android:layout_marginTop="10dp"
        android:height="50dp"
        android:onClick="onClick"
        android:text="@string/calc" />
 
    <TextView
        android:id="@+id/txt_dmb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/btn_calc"
        android:layout_alignRight="@+id/btn_calc"
        android:layout_below="@+id/btn_calc"
        android:gravity="center_vertical|center_horizontal"
        android:maxHeight="50dp"
        android:minHeight="50dp"
        android:textAppearance="?android:attr/textAppearanceLarge" />
 
    <SeekBar
        android:id="@+id/skb_1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/txt_dmb"
        android:layout_alignRight="@+id/txt_dmb"
        android:layout_below="@+id/txt_dmb"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:max="255"
        android:progress="255" />
 
</RelativeLayout>
layout-land/activity_m.xml
XML
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
 
    <EditText
        android:id="@+id/txt_1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="300dp"
        android:layout_marginTop="10dp"
        android:ems="10"
        android:inputType="number|numberSigned|numberDecimal" />
 
    <EditText
        android:id="@+id/txt_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_marginLeft="300dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="10dp"
        android:ems="10"
        android:inputType="number|numberSigned|numberDecimal" />
 
    <TextView
        android:id="@+id/lbl_ravno"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/txt_1"
        android:layout_marginLeft="5dp"
        android:layout_marginRight="400dp"
        android:layout_marginTop="10dp"
        android:gravity="center_vertical"
        android:text="@string/ravno"
        android:textAppearance="?android:attr/textAppearanceLarge" />
 
    <TextView
        android:id="@+id/txt_dmb"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/btn_calc"
        android:layout_alignRight="@+id/btn_calc"
        android:layout_below="@id/btn_calc"
        android:layout_marginTop="10dp"
        android:maxHeight="50dp"
        android:shadowColor="#0f0f0f"
        android:shadowDx="5"
        android:shadowDy="5"
        android:textAppearance="?android:attr/textAppearanceLarge" />
 
    <TextView
        android:id="@+id/lbl_ravno_zn"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="false"
        android:layout_below="@id/txt_1"
        android:layout_marginLeft="80dp"
        android:layout_marginRight="5dp"
        android:layout_marginTop="10dp"
        android:gravity="center_vertical"
        android:minWidth="190dp"
        android:textAppearance="?android:attr/textAppearanceLarge" />
 
    <Spinner
        android:id="@+id/snr_znak"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="false"
        android:layout_marginLeft="185dp"
        android:layout_marginRight="185dp"
        android:layout_marginTop="10dp"
        android:entries="@array/spisok"
        android:minWidth="110dp" />
 
    <Button
        android:id="@+id/btn_calc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/lbl_ravno"
        android:layout_alignParentRight="true"
        android:layout_below="@id/lbl_ravno"
        android:layout_centerVertical="true"
        android:layout_marginRight="5dp"
        android:layout_marginTop="10dp"
        android:height="50dp"
        android:onClick="onClick"
        android:text="@string/calc" />
 
 <SeekBar
     android:id="@+id/skb_1"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:layout_alignLeft="@+id/txt_dmb"
     android:layout_alignRight="@+id/txt_dmb"
     android:layout_below="@+id/txt_dmb"
     android:layout_marginLeft="10dp"
     android:layout_marginRight="10dp"
     android:max="255"
     android:progress="255" />
 
</RelativeLayout>
MA.java
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
package lagster.experement;
 
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Timer;
 
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.SeekBar;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
 
public class MA extends Activity
implements SeekBar.OnSeekBarChangeListener {
 
    Spinner znak;
    EditText txt_1, txt_2;
    TextView otvet, dmb;
    Double a, b, c;
    Long ddd;
    String dmb_text, dd, MM, yy, hh, mm, ss, sklonenie, bg_color;
    Timer myTimer;
    Handler uiHandler;
    Calendar D1, D2;
    Timer timer;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_m);
        
        final SeekBar seekBar = (SeekBar)findViewById(R.id.skb_1);
        seekBar.setOnSeekBarChangeListener(this);
        
        txt_1 = (EditText) findViewById(R.id.txt_1);
        txt_2 = (EditText) findViewById(R.id.txt_2);
        otvet = (TextView) findViewById(R.id.lbl_ravno_zn);
        znak = (Spinner) findViewById(R.id.snr_znak);
        dmb = (TextView) findViewById(R.id.txt_dmb);
        D1 = Calendar.getInstance();
        D2 = Calendar.getInstance();
 
        Calendar cal = new GregorianCalendar();
        
        dd = new SimpleDateFormat("dd").format(cal.getTime());
        MM = new SimpleDateFormat("MM").format(cal.getTime());
        yy = new SimpleDateFormat("yyyy").format(cal.getTime());
        hh = new SimpleDateFormat("hh").format(cal.getTime());
        mm = new SimpleDateFormat("mm").format(cal.getTime());
        ss = new SimpleDateFormat("ss").format(cal.getTime());
        D1.set(Integer.valueOf(yy), Integer.valueOf(MM), Integer.valueOf(dd), Integer.valueOf(hh), Integer.valueOf(mm), Integer.valueOf(ss));
        D2.set(2013, 7, 5, 7, 0, 0);
        ddd = ((D2.getTimeInMillis()-D1.getTimeInMillis())/1000);
        if (ddd%10 == 1) {
            sklonenie = " секунда";
        }
        else if ((ddd%10 == 2) || (ddd%10 == 3) || (ddd%10 == 4)) {
            sklonenie = " секунды";
        }
        else {
            sklonenie = " секунд";
        }
        
        dmb_text =  ddd + sklonenie + " до дома.";
        dmb.setText(dmb_text);    
        if (seekBar.getProgress() > 16)
            bg_color = "#" + java.lang.Integer.toHexString(seekBar.getProgress()) + java.lang.Integer.toHexString(seekBar.getProgress())+java.lang.Integer.toHexString(seekBar.getProgress());
            
        else
            bg_color = "#0" + java.lang.Integer.toHexString(seekBar.getProgress()) + "0" + java.lang.Integer.toHexString(seekBar.getProgress()) + "0" + java.lang.Integer.toHexString(seekBar.getProgress());
        otvet.setText(bg_color);
    }
    
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.activity_m, menu);
        return true;
    }
    
    public void onClick(View v){
        try {
            a = Double.valueOf(txt_1.getText().toString());
        }
        catch (NumberFormatException e) {
            a = 0.0;
        }
        try {
            b = Double.valueOf(txt_2.getText().toString());
        }
        catch (NumberFormatException e) {
            b = 0.0;
        }
 
        
        if (znak.getSelectedItemId() == 0) {
            c = a+b;
        } else if (znak.getSelectedItemId() == 1) {
            c = a-b;
        } else if (znak.getSelectedItemId() == 2) {
            c = a*b;
        } else {
            c = a/b;
        }       
        
        if (znak.getSelectedItemId() == 3 && b == 0) {
            otvet.setText("Деление на ноль");
        } else {
            otvet.setText(String.valueOf(c));
        }
        
    }
    
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        switch (item.getItemId()) {
        case R.id.menu_close:
            quit();
            return true;
        default:
            Toast tost = Toast.makeText(getApplicationContext(), 
                       "Настройки", Toast.LENGTH_SHORT);
            tost.show();
            return super.onOptionsItemSelected(item);
        }
    }
 
   
    private void quit() {
        finish();
    }
        
    public void onProgressChanged(SeekBar seekBar, int progress,
            boolean fromUser) {
        // TODO Auto-generated method stub
        if (seekBar.getProgress() > 16)
            bg_color = "#" + java.lang.Integer.toHexString(seekBar.getProgress()) + java.lang.Integer.toHexString(seekBar.getProgress())+java.lang.Integer.toHexString(seekBar.getProgress());
            
        else
            bg_color = "#0" + java.lang.Integer.toHexString(seekBar.getProgress()) + "0" + java.lang.Integer.toHexString(seekBar.getProgress()) + "0" + java.lang.Integer.toHexString(seekBar.getProgress());
        otvet.setText(bg_color);
        
    }
 
    public void onStartTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
        
    }
 
    public void onStopTrackingTouch(SeekBar seekBar) {
        // TODO Auto-generated method stub
        
    }
}
До добавления СикБара проблем при повороте не было, а теперь при повороте оно закрывается с ошибкой
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.10.2012, 22:19
Ответы с готовыми решениями:

При повороте экрана выпадает ошибка
Доброе утро товарищи. Пытаюсь протестить аппку на реальном устройстве. Подключил через шнурок, устанавливает нормально. При запуске...

Ошибка при повороте экрана в горизонтальное положение
Здравствуйте, получаю такую ошибку при выходе из приложения в горизонтальном положении в &quot;недавних&quot;Крашится SystemUi ...

Ошибка при загрузки изображений с карты памяти при повороте экрана
Здравствуйте! Вопрос в следующем. Загружаю в активити фотки с камеры. Имя файла передаю следующим кодом: Intent captureIntent = new...

4
1162 / 986 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.10.2012, 23:30
с какой ошибкой?
0
 Аватар для Creative
22 / 8 / 0
Регистрация: 13.07.2012
Сообщений: 66
18.10.2012, 21:13
Log в студию)))
0
1 / 1 / 1
Регистрация: 05.11.2010
Сообщений: 27
19.10.2012, 07:01  [ТС]
Проблем решилась заменой
Java
1
final SeekBar seekBar = (SeekBar)findViewById(R.id.skb_1);
на
Java
1
SeekBar seekBar = (SeekBar)findViewById(R.id.skb_1);
Логи не сохранились =)) А ошибка... просто было написано Произошла ошибка приложение будет закрыто =)
0
545 / 344 / 12
Регистрация: 05.11.2010
Сообщений: 1,076
Записей в блоге: 1
19.10.2012, 17:42
При смене ориентации активити пересоздается. Если final аналогичен по режиму хранения static const в C++, то падение с ошибкой при пересоздании активити вполне ожидаемо, так как производится попытка перезаписать константу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.10.2012, 17:42
Помогаю со студенческими работами здесь

Непонятное поведение при повороте экрана
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.listpick); ...

Сохранить imageview при повороте экрана
Доброго времени суток. При повороте екрана нужно сохранить imageView. Знаю что нужно использовать onSaveInstanceState() и ...

Сохранение объекта при повороте экрана
здравствуйте,читаю в доках,что метод onRetainNonConfigurationInstance () устарел и надо пользоваться Fragment.setRetainInstance(true) даже...

Запретить пересоздание Activity при повороте экрана
В общем, проблема в заголовке. Собственно сам конфиг из манифеста &lt;activity android:name=&quot;.MainActivity&quot; ...

Запрет выполнения onCreate при повороте экрана
Здравствуйте уважаемые специалисты! У меня такой вопрос: в моей игре есть вопросы и варианты ответов как в игре (кто хочет стать...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
Установка Emscripten SDK (emsdk) и CMake на Windows для сборки C и C++ приложений в WebAssembly (Wasm)
8Observer8 30.01.2026
Чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. Система контроля версиями Git. . .
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru