Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
Lagsterius
1 / 1 / 0
Регистрация: 05.11.2010
Сообщений: 27
#1

Ошибка при повороте экрана - Программирование Android

17.10.2012, 22:19. Просмотров 1928. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.10.2012, 22:19
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка при повороте экрана (Программирование Android):

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

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

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

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

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

Анимация при повороте экрана - в своем приложении - Программирование Android
Искал, не нашел. При повороте один view меняется на другой. В коде. Как сделать свою анимацию при переходе?

4
V0v1k
1159 / 983 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.10.2012, 23:30 #2
с какой ошибкой?
0
Creative
22 / 8 / 1
Регистрация: 13.07.2012
Сообщений: 66
18.10.2012, 21:13 #3
Log в студию)))
0
Lagsterius
1 / 1 / 0
Регистрация: 05.11.2010
Сообщений: 27
19.10.2012, 07:01  [ТС] #4
Проблем решилась заменой
Java
1
final SeekBar seekBar = (SeekBar)findViewById(R.id.skb_1);
на
Java
1
SeekBar seekBar = (SeekBar)findViewById(R.id.skb_1);
Логи не сохранились =)) А ошибка... просто было написано Произошла ошибка приложение будет закрыто =)
0
Герц
524 / 341 / 4
Регистрация: 05.11.2010
Сообщений: 1,077
Записей в блоге: 1
19.10.2012, 17:42 #5
При смене ориентации активити пересоздается. Если final аналогичен по режиму хранения static const в C++, то падение с ошибкой при пересоздании активити вполне ожидаемо, так как производится попытка перезаписать константу.
0
19.10.2012, 17:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.10.2012, 17:42
Привет! Вот еще темы с ответами:

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

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

Как сохранить состояние хронометра при повороте экрана? - Программирование Android
в программе запускается хронометр Chronometer chronometer = (Chronometer) findViewById(R.id.chronometer); chronometer.start(); ...

Сохранение цвета Layout при повороте экрана (ПОРТРЕТ->ЛАНДШАФТ) - Программирование Android
покажите на примере пожалуйста, как сохранить текущий цвет фона при повороте экрана package ru.pm.svetofor; import...


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

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

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